Как найти файлы, измененные в одной ветви, когда в нее была добавлена ​​другая (игнорируя изменения из объединенной ветви)? - PullRequest
0 голосов
/ 28 февраля 2019

Я работал над функцией с несколькими коллегами в ветке "b1", эта работа продолжалась в течение нескольких месяцев, и кто-то решил объединить изменения с master, чтобы попытаться уменьшить вероятность конфликтов слияния в дальнейшем.вниз по линии.

|
|\  
| \
|  \   (branch point)
|   |
|   |
|   |
|___|    (merge)
|   |
|   |
|   |    (current state)
    (b1)

Работа над мастером продолжалась до того, как он был объединен с b1.Я хотел бы знать, какие файлы были изменены ТОЛЬКО в b1, игнорируя все коммиты, которые сейчас находятся в истории b1, которые были внесены путем слияния master в.

Я пробовал использовать различные опции git logчтобы сделать это, например, параметр --no-merges, который, кажется, игнорирует только фактические коммиты слияния.

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

git log --no-merges --author="Jeff" --name-only --pretty=format:"" <branch_point>..HEAD 

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

Есть лихороший, чистый способ узнать, файлы изменились только в b1?Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 28 февраля 2019

Если нет конфликтов, git diff master...b1 (т. Е. Тройная точка).

Это не так хорошо определено в общем случае.Я думаю, один из значимых способов это снова объединить мастер в b1, а затем diff результат слияния с мастером.В этом случае он покажет существенную разницу со всеми конфликтами / несоответствиями, разрешенными слиянием.

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