Как просмотреть полные фиксации при отслеживании истории одного файла в Git?
У меня есть хранилище Git с примерно двухлетней историей. У меня есть один файл, для которого я хочу найти все коммиты и для каждой фиксации: все остальные файлы, которые были зафиксированы в нем. Предположим, что этот файл называется file.txt. Я могу запустить gitk с этим файлом в качестве аргумента:
gitk file.txt
и я получаю каждую фиксацию. Однако просмотр этого дерева в gitk показывает только изменения, внесенные в file.txt. Я хотел бы посмотреть, какие другие файлы были изменены в этом коммите. Я могу скопировать вставку каждый фиксатор SHA1 и отобразить его, но есть более сотни коммитов, связанных с этим файлом.
Я заметил, что раздел "комментарии" в нижней правой части экрана пуст (отображается только текст "Комментарии" ). Может быть, список файлов может быть показан там?
Ответы
Ответ 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).