В заголовке вашего вопроса сказано, что вам нужно проверять каждый коммит.В этом случае, возможно, вы имеете в виду что-то вроде git log
.С другой стороны, ваше описание вывода звучит так, будто вам нужен только один список файлов (или, позже, два).Вместо этого предлагается git diff
.
git log --name-only --format="" <upstream_branch_name>..<branch_name>
или
git diff --name-only <upstream_branch_name>..<branch_name>
Например, если вы проверяете ветку с именем my_feature
и хотите знать, что меняется в каждом коммите с тех пор, какпоскольку он отклоняется от ветви develop
, вы можете сказать
git log --name-only --format="" develop..my_feature
Здесь я использовал --format=""
, чтобы вы просто получили список имен файлов;если вы генерируете список для каждого коммита, вы можете захотеть сделать что-то другое с опцией format
.Я упоминаю об этом, потому что, как было написано, файл может появляться несколько раз - даже показываться один раз, потому что commit A
создал его, и снова, потому что commit B
удалил его.Если это нежелательно, и вы просто хотите, чтобы сетевое изменение было связано с ветвью, используйте diff
вместо log
.
Вниз вы можете изменить это значение на
git log --name-status --format="" develop..my_feature
или
git diff --name-status develop..my_feature
и обработайте результаты, чтобы разделить удаления в свой собственный файл.Имейте в виду, что с --name-status
, git по умолчанию применяет обнаружение переименования.Таким образом, вы можете получить несколько строк, таких как
D file1
A file2
M file3
, что вы хотели бы видеть.Тот, который начинается с D
, был удален, поэтому поместите его в список удаления;другие были добавлены и изменены.Но вы также можете получить строки вроде
R99 fileX fileY
, означающие, что git думает, что вы переименовали fileX
в fileY
и внесли небольшие изменения в тот же коммит.Если вы предпочитаете git, просто дайте вам
D fileX
A fileY
, чтобы вы просто видели, какие пути появляются и исчезают индивидуально, а затем добавьте параметр --no-renames
, как
git diff --name-status --no-renames develop..my_feature