Git коммиты, найденные в master, не отображаются при просмотре журнала определенного файла - PullRequest
2 голосов
/ 15 июля 2009

У нас есть хранилище, в котором есть только основная ветвь (для целей этого обсуждения). Каким-то образом мы попали в ситуацию, когда разработчик объединил своего локального мастера и столкнулся с потерей других коммитов.

Ситуация такова, что для нескольких коммитов, если мы запускаем git log из корня проекта, он показывает коммит. Если мы выберем один из этих файлов и запустим git log, он не покажет фиксацию в журнале. Изменения в этом коммите также не отражаются в проверке головы.

У кого-нибудь есть идеи, как может возникнуть такая ситуация и как мы можем остановить ее повторение?

Ответы [ 2 ]

6 голосов
/ 15 июля 2009

Похоже, что, возможно, изменения в файлах, которые были потеряны при локальном слиянии, были сделаны разработчиком, возможно, при разрешении конфликтов до совершения слияния.

Вы должны попробовать эту команду в корневом каталоге проекта:

git log --stat -c

Посмотрите, какие файлы были изменены в каждом коммите, и проверьте, включены ли все эти изменения в слияние.

2 голосов
/ 15 июля 2009

Если вы запустите

$ git log file

будет отображать все коммиты, начиная с текущей ветки (которые могут отличаться: проверьте выходные данные "git branch" на одной ветке), но только те коммиты, которые имеют изменения, которые влияют на данный путь Даже если у вас нет каких-либо других веток, вы можете находиться в отделенной HEAD, т.е. в неназванной ветке.

Проверьте также «git show» или «git whatchanged» (или «git show master»), если файлы действительно изменены.
Используйте «git show --cc» или «git show --raw --abbrev», если вы хотите проверить коммит слияния.

Для восстановления вы можете использовать "git reflog" / "git log -g".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...