2012-03-29 3 views
2

Есть ли способ перечислить коммиты из ветви A, которые не находятся в ветви B, но если есть какие-либо коммиты, находящиеся в A и B, но возвращенные в B, показать их также?Git: перечисляйте разные коммиты, но сохраняйте обратную связь

Нечто похожее на:

git log --oneline A ^B 

Так, скажем, у меня есть филиал C, который был присоединен к А, а затем случайно слиты в B. Слияние затем вернулся в B. В еще технически содержит коммиты от C, поэтому приведенная выше команда не будет перечислять коммиты в C ... но в моем случае я хочу, чтобы команда также показывала такие коммиты.

ответ

1

Если вы использовали git revert, чтобы вернуть коммиты, вы должны увидеть в git log A..B фиксацию «merge» и «revert merge» commit.

Затем вам нужно будет использовать ответ от this question, чтобы показать, какие фиксации были в этом восстановленном слиянии.

Короче:

git log $(git merge-base --octopus $(git log -1 --pretty=format:%P THE_HASH_OF_THE_MERGE_COMMIT))..THE_HASH_OF_THE_MERGE_COMMIT

Смежные вопросы