Git diff после слияния туда и обратно? - PullRequest
2 голосов
/ 14 ноября 2011

В основе этого вопроса может быть что-то вроде Найти точку ветвления с помощью Git?

.-- X -- A -- B -- C -- D -- F  (master) 
.          \     /   \     /
.           \   /     \   /
.             G -- H -- I -- J  (branch A)

Так что я ищу git diff, который включает в себя только коммиты G + H + I + J

Боюсь, что получить его невозможно, потому что branchA несколько раз сливался с master, и master также несколько раз сливался с branchA.

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

git diff G J должен дать вам G + H + I + J, но, так как вы беспокоитесь о слиянии, вероятно, вам нужен diff для G + H + J - исключая слияния.Боюсь, вам нужно создать временную ветку и выбрать эти коммиты, чтобы получить нужный вам дифференциал.

0 голосов
/ 14 ноября 2011

К сожалению, без создания новых коммитов это как-то не определено.Возможно, что разница, введенная J, даже не имеет смысла без того, что было объединено в I, а именно B и C.

Предполагая, что J действительно не пересекается с B и C, вам нужно каким-то образом создавать новые коммиты, чтобы получить комбинированный дифференциал, потому что то, что вы запрашиваете, невозможно (в общем случае) определить без итеративного применения патчей и просмотра результата.Однако самый быстрый способ сделать это - не собирать вишню.Вместо этого вы можете воспользоваться тем, что rebase по умолчанию не сохраняет коммиты слияния.Поэтому:

# create a temporary copy of branch A
git branch branch-A-tmp branch-A
# rebase that copy in place, thus removing the merge commits
git rebase commit-A branch-A-tmp
# examine the diff
git diff commit-A branch-A-tmp

Если изменения, сделанные в J, не отделимы от изменений в B и C, слитых в I, вы получите конфликты слияния при попытке перебазирования-apply J, что указывает на то, что запрашиваемая разница не является четко определенной.В противном случае вы получите различий, которые вы ищете.

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