См. изменения в определенном файле с помощью git

Я знаю в git, я могу использовать git diff команда для проверки изменений, но (что я понял, так это то, что) она основана на каталоге. Это означает, что он дает все изменения всех файлов в текущем каталоге.

как я могу проверить только изменения в одном конкретном файле? скажем, я изменил file_1.rb, file_2.рубидий. ,.., file_N.rb, но меня интересуют только изменения в файле file_2.рубидий. Как тогда проверить?

Я хотел бы проверить изменения, прежде чем я совершу он.

8 ответов


использовать команду типа:

git diff file_2.rb

посмотреть git diff документация для получения полной информации о видах вещей, которые вы можете получить различия.

как правило, git diff само по себе показывает все изменения в целом хранилище (не только текущий каталог).


можно использовать gitk [filename] чтобы увидеть изменения в журнале


другой метод (упомянутый в это так ответ) будет держать историю в терминале и даст вам очень глубокий послужной список сам файл:

git log --follow -p -- file

Это покажет всю историю файла (включая историю за пределами переименований и с различиями для каждого изменения).

другими словами, если файл с именем bar был однажды назван foo, то git log-p bar (без опции -- follow) будет показывать только историю файла до того момента, когда он был переименован-он не будет показывать историю файла, когда он был известен как foo. Использование git log --follow-p bar покажет всю историю файла, включая любые изменения в файле, когда он был известен как foo.


вы можете использовать команду ниже, чтобы увидеть, кто что изменил в файле.

git blame <filename>


вы можете выполнить

git status -s

Это покажет измененное имя файлов, а затем, скопировав интересующий путь к файлу, вы можете увидеть изменения с помощью git diff

git diff <filepath + filename>

вы также можете попробовать

git show <filename>

коммитов, git show покажет сообщение журнала и текстовое различие (между вашим файлом и введенной версией файла).

вы можете проверить ГИТ показать документацию для получения дополнительной информации.


или если вы предпочитаете использовать свой собственный инструмент:

git difftool ./filepath

вы можете установить свой инструмент gui, руководствуясь этим сообщением: как просмотреть вывод "git diff" с помощью программы visual diff?


полностью согласен с @Greg Hewgill

и если вы путь включает пробелы, вы можете использовать, попробуйте добавить с апострофом ' или

git diff ' MyProject / My Folder/My Sub Folder / file_2.rb'