Я не уверен на 100%, что понимаю, что из следующего вы ищете:
git diff B A
даст вам патч, который вам понадобится для замены B на содержимое A;
git diff B...A
# same as :
git diff $(git merge-base A B) A
даст вам различия между «базой слияния B и A» и A.
[править] А, возможно, вы ищете git log --cherry
:
$ git log --oneline --cherry B...A
= 52d74472c (HEAD -> A) update the thrusters
+ ca5649304 balance the hull # commits tagged with "+" are not present on B
= 507c0acea fix the airlock # commits tagged with "=" are also present on B
Обратите внимание, что здесь сравниваются коммиты на основе патча, который они вводят; если по какой-то причине патч не совсем одинаковый, два коммита будут считаться разными.
Это указывает на коммиты, которые git rebase
или git cherry-pick
сохранят.
git log --cherry-mark B...A
отобразит оба списка для A и B, помеченные +
и =
, чтобы указать «оригинал» и «присутствует в другой ветви».