Подтвердить что ты не робот

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

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

gitk file.txt

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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