Есть ли способ увидеть все измененные файлы на ветке в Git? - PullRequest
21 голосов
/ 02 августа 2011

Я прошу прощения, если это не очень понятно, но в Git есть ли способ увидеть все измененные файлы в ветке, только по имени. Насколько я знаю, я могу использовать git log для просмотра файлов, которые изменились за один коммит, но я хочу увидеть все файлы, которые изменились с момента создания ветки, за несколько коммитов.

Существует git diff, но в нем также перечислены измененные файлы в ветви, которую я сравниваю, с которой я не хочу видеть. Я вроде хочу команду, которая говорит «покажи мне имена файлов для всех измененных файлов в этой ветке».

Большое спасибо

Ответы [ 4 ]

47 голосов
/ 02 августа 2011

Предположим, что вы находитесь на ветке foo, и вас интересует, какие файлы изменились с того момента, когда он отклонился от master, вы можете просто сделать:

git diff --name-only master...

(обратите внимание на три точки.) Если вы не foo, вы можете использовать полную форму:

git diff --name-only master...foo

Я сделал несколько рисунков, которые объясняют двойные и тройные нотации и их различия между значениями в git rev-list и git log - вы можете найти их в этом ответе .

1 голос
/ 02 августа 2011

Не знаю, что есть что-то, что делает именно то, что вы хотите, основываясь только на вашей текущей ветви, но если вы знаете идентификатор фиксации, который является родительским для вашей ветви, вы можете сделать:

git diff --name-only <commit id of branch point>..HEAD
0 голосов
/ 08 октября 2012

Я использую эту команду, чтобы узнать список N файлов, измененных между двумя версиями, здесь N равно 50

git log  --pretty=format: --name-only <SourceBranch>...<TargetBranch> | sort | uniq -c | sort -rg | head -50
0 голосов
/ 02 августа 2011

Предположим, что вы отметили ветку, над которой работаете, и хотите сравнить ее с мастером:

git diff --name-only master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...