См. Изменения в конкретном файле с помощью git
Я знаю, что могу использовать команду git diff
для проверки изменений, но, насколько я понял, она основана на каталогах. Это означает, что он дает все изменения всех файлов в текущем каталоге.
Как я могу проверить только изменения в одном конкретном файле? Скажем, я изменил файлы file_1.rb
, file_2.rb
,..., file_N.rb
, но меня интересуют только изменения в файле file_2.rb
. Как я могу проверить эти изменения (до того, как зафиксировать)?
Ответы
Ответ 1
Используйте команду:
git diff file_2.rb
Обратитесь к документации git diff
для получения полной информации о видах вещей, для которых вы можете получить различия.
Обычно git diff
показывает все изменения во всем репозитории (а не только в текущем каталоге).
Ответ 2
Вы можете использовать gitk [filename]
для просмотра журнала изменений
Ответ 3
Другой метод (упомянутый в этом SO-ответе) сохранит историю в терминале и даст вам очень глубокую запись самого файла:
git log --follow -p -- file
Это покажет всю историю файла (включая историю за пределами переименований и с разностями для каждого изменения).
Другими словами, если файл с именем bar был однажды назван foo, то git log -p bar (без опции --follow) будет показывать историю файлов вплоть до того момента, когда он был переименован - это не покажет историю файлов, когда она была известна как foo. Использование git log --follow -p bar покажет файл всей истории, включая любые изменения в файле, когда он был известен как foo.
Ответ 4
Вы можете использовать команду ниже, чтобы узнать, кто изменил то, что в файле.
git blame <filename>
Ответ 5
Вы можете выполнить
git status -s
Это покажет имя измененного файла, а затем, скопировав интересующий путь к файлу, вы увидите изменения с помощью git diff
git diff <filepath + filename>
Ответ 6
Вы также можете попробовать
git show <filename>
Для коммитов git show покажет сообщение журнала и текстовую разницу (между вашим файлом и версией файла с фиксацией).
Вы можете проверить git show Documentation для получения дополнительной информации.
Ответ 7
Или, если вы предпочитаете использовать свой собственный инструмент gui:
git difftool ./filepath
Вы можете настроить инструмент gui, руководствуясь этим сообщением:
Как просмотреть 'git diff' с помощью программы визуального сравнения?
Ответ 8
Полностью согласен с @Greg Hewgill
И если ваш путь включает пробелы, вы можете использовать, попробуйте добавить с апострофом '
или'
git diff 'MyProject/Моя папка/Моя подпапка /file_2.rb'
Ответ 9
выводить только данные о коммитах для конкретных изменений файла,
git log --follow file_1.rb
перечислить разницу между различными коммитами для одного и того же файла,
git log -p file_1.rb
перечислить только коммит и его сообщение,
git log --follow --oneline file_1.rb