Как узнать, какие файлы были изменены в ветке git (не разница между двумя ветками)

У меня есть ветка с именем feature_219, которая была создана из master некоторое время назад. После утечки в обеих ветках было изменено несколько файлов.

Теперь я пытаюсь выяснить, какие файлы были изменены при работе только с веткой feature_219.

Проведя некоторое исследование, я обнаружил, что git diff --name-only master feature_219 может помочь, но оказалось, что эта команда сообщает обо всех файлах, которые различаются в обеих ветках. Я пытался найти какую-то опцию с помощью этой команды, но у меня ничего не получилось.

Есть ли способ перечислить только те файлы, которые были изменены в ветке feature_219?


person Kashif Nazar    schedule 17.04.2015    source источник
comment
Ваш вопрос не ясен. Отличается по сравнению с чем? В базу слияния feature_219 и master? Более конкретно. Всякий раз, когда вы используете слово «другой», укажите также, с чем вы сравниваете.   -  person jub0bs    schedule 17.04.2015
comment
Есть ли способ перечислить только те файлы, которые были изменены в ветке feature_219? Изменено относительно чего?   -  person jub0bs    schedule 17.04.2015
comment
Большое спасибо за исправление @Jubobs   -  person Kashif Nazar    schedule 17.04.2015


Ответы (2)


Вы можете использовать git merge-base, чтобы найти общего предка двух ветвей, а затем получить diff.

git diff --name-only feature_219 $(git merge-base master feature_219)
person xdazz    schedule 17.04.2015

Согласно документации git diff

git diff --name-only master...feature_219

должен сделать трюк. Обратите внимание на три точки. Если вы сейчас находитесь на ветке feature_219

git diff --name-only master...

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

Команду git diff A...B следует интерпретировать как "дайте мне все изменения, которые происходят в коммитах при переходе от A к B". Если A не является родителем B (как в данном случае), для ответа на этот вопрос будет использоваться общий предок.

person Nils_M    schedule 17.04.2015