Получить список измененных файлов после git merge/git merge tool

У меня есть мастер, branch1 и branch2.

Я использовал 'git merge', затем 'git mergetool', чтобы объединить дельты (то есть изменения между master и branch2) в branch1.

Теперь я хотел бы идентифицировать все измененные файлы в Branch1 в результате вышеуказанного слияния и скопировать все эти измененные файлы в отдельную папку для отправки кому-либо.

Как правильно это сделать?

Спасибо! p/s: мои извинения, если это слишком тривиальный вопрос, я новичок в GIT

1 ответ

Ты можешь попробовать:

git diff --name-only branch1^ branch1
# or :
git diff --name-status branch1^ branch1

Объясняя:

  1. В общем, git diff [commit1] [commit2] будет работать с любыми двумя коммитами:

    git diff branch1 master
    git diff tag/v1.0 branch2
    git diff eacf32bb8 branch1
    # etc ...
    
  2. С --name-only или же --name-status вариант, git diffбудет отображаться только список измененных файлов между двумя коммитами (с --name-status, добавлю письмо A, M or D перед именем файла, чтобы указать, было ли это Added, Mодифицированный или Deleted)

  3. При работе с коммитом слияния у него есть два родителя:

    ...*--*--*--*--A---M  <- branch1
           \          /
            *--*--*--B
    

    на рисунке выше, A является первым родителем M, а также B его второй родитель.
    branch1^ назначает в A (первый родитель branch1), branch1^2 будет обозначать B (второй родитель branch1).

Другие вопросы по тегам