Почему «git log -‌- foo» не работает для удаленного файла foo? - PullRequest
88 голосов
/ 07 июля 2010

Мой репозиторий претерпел изменения, такие как:

  1. ... некоторые несвязанные коммиты ...
  2. Фиксация нового файла foo с 100 строками контента
  3. ... промежуточные коммиты, некоторые из которых касаются foo ...
  4. Вставьте содержимое foo вверху существующего файла bar и git rm foo в тот же коммит
  5. ... больше не связанных коммитов ...

Теперь я хочу посмотреть журнал удаленного файла foo.Все, что я прочитал, в том числе и на SO, говорит, что я должен быть в состоянии git log -- foo, но эта команда не производит вывод.

Если я найду коммит, который включает в себя удаление foo, я смогу git log 1234abcd -- fooпосмотрите его журнал, так что я думаю, что мой путь к foo не проблема.Также обратите внимание, что git merge-base HEAD 1234abcd выводит 1234abcd[...], поэтому я думаю, что это должно доказать, что фиксация достижима с HEAD.Обратите внимание, что в моем рабочем дереве нет файла foo (очевидно, так как он был удален).Использование Git 1.7.1.1 на OS X.

Почему у меня не работает git log -- foo и как я могу это исправить?Спасибо!

1 Ответ

117 голосов
/ 08 ноября 2011

Вы хотите использовать опцию --follow на git log, которая описана на странице руководства как:

Continue listing the history of a file beyond renames.

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

git log --follow -- foo

Обновление:

Git 2.9+ теперь включает это по умолчанию для всех команд git diff и git log:

Конечный пользователь сталкивается с командами уровня Фарфора в "git diff" и семейство git log по умолчанию включает обнаружение переименования; ты еще можешь используйте отключенную переменную конфигурации "diff.renames".

Спасибо x-yuri за головы!

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