Как просмотреть полные коммиты при отслеживании истории одного файла в Git?

У меня есть репозиторий Git с двухлетней историей. У меня есть один файл, для которого я хочу найти все коммиты, а для каждого коммита: все остальные файлы, которые были в нем зафиксированы. Предположим, что этот файл называется file.txt. Я могу запустить gitk с этим файлом в качестве аргумента:

gitk file.txt

и я получаю каждый коммит. Однако просмотр этого дерева в gitk показывает только изменения, внесенные в файл.txt. Я хотел бы посмотреть, какие другие файлы были изменены в этой фиксации. Я могу скопировать и вставить каждый коммит SHA1 и отобразить его, но с этим файлом связано более сотни коммитов.

Я заметил, что раздел «комментарии» в нижней правой части экрана пуст (показывает только текст «Комментарии»). Может быть, там можно показать список файлов?


person Milan Babuškov    schedule 29.12.2009    source источник
comment
Для EOL в другом месте см. unix.stackexchange.com/questions/10277/   -  person Thorbjørn Ravn Andersen    schedule 02.05.2011


Ответы (3)


В командной строке

git log -p --full-diff file.txt

выведет то, что вы хотите.

Если вы должны увидеть его в gitk, вызовите его с аргументами без, найдите коммит "касание пути" file.txt, и коммит, содержащий этот файл, будет выделен полужирным шрифтом. И вы можете использовать кнопки «вверх» и «вниз», чтобы перемещаться по нему.

person iamamac    schedule 29.12.2009
comment
Превосходно! Именно то, что мне нужно. Большое спасибо (извините, я могу только проголосовать и принять это) - person Milan Babuškov; 30.12.2009

На самом деле вы можете иметь функциональность --full-diff в gitk, но не напрямую из командной строки. Просто сделайте следующее:

  • Запустите gitk обычным способом, например: gitk file.txt
  • Выберите «Вид -> Изменить вид...» в меню. Убедитесь, что вы редактируете представление «Командная строка».
  • В поле редактирования рядом с «Дополнительные аргументы для git log» введите --full-diff
  • Нажмите «Применить» или нажмите [F5].

Это должно сработать. Почему gitk не позволяет вам использовать это из командной строки, для меня загадка, потому что это очень полезная опция.

person ack    schedule 09.10.2012

Еще одно решение из списка рассылки, датированное 2008 года:

Попробуйте отключить параметр «Ограничить различия указанными путями» в меню настроек (или добавить «установить limitdiffs 0» в ваш ~/.gitk).

person prusswan    schedule 19.11.2013
comment
это единственное решение, работающее для меня. ~/.gitk не работает, но изменение настроек работает нормально - person nayana; 16.06.2016