Я случайно зафиксировал и объединил некоторые работы в другую ветку, когда я не должен был этого делать. Чтобы исправить это, мне нужно вернуться к более ранней фиксации.
Однако, когда я запускаю git reflog
, я получаю список коммитов, относящихся к другой ветке, над которой я работаю. Ни один из них не связан с веткой, над которой я сейчас работаю, и которую я проверил сейчас.
Кто-нибудь знает, почему это так и как я могу найти коммиты, относящиеся к моей ветке?
Формат, который вы используете, когда делаете простой git reflog
:
git reflog [show] [log-options] [<ref>]
так что вы фактически опускаете два аргумента, которые будут приняты и вернутся к своим значениям по умолчанию:
git reflog show HEAD
который выводит историю самого HEAD
, поэтому список действий над (при условии, что у вас делать есть рабочий процесс с несколькими ветвями) сочетание разных ветвей.
Но вы могли бы указать ветку (ДАЖЕ, ЕСЛИ ветка уже проверена, поскольку здесь HEAD
не будет разрешена текущая ветка):
git reflog some-feature
(здесь также подразумевается действие show
, но ветвь указана явно)
Из документ :
The "show" subcommand (which is also the default, in the absence of any subcommands) shows the log of the reference provided in the command-line (or HEAD, by default).
Если у вас все еще есть ветка, используйте: git reflog [yourbanch]
Если вы ищете историю otherbranch
: git reflog [otherbranch]
git reflog
, который является сокращением для git reflog HEAD
, дает вам подробную историю всех проверенных коммитов; это полезно в целом (это делает большой стек отмены), но на самом деле более шумно.