Каков наилучший способ получить журнал фиксации на ветке с момента ее разветвления с текущей ветки? Мое решение до сих пор:Как получить изменения на ветке в Git
git log $(git merge-base HEAD branch)..branch
Документация git-diff указывает, что git diff A...B
эквивалентно git diff $(git-merge-base A B) B
. С другой стороны, документация для git-rev-parse указывает, что r1...r2
определяется как r1 r2 --not $(git merge-base --all r1 r2)
.
Почему эти разные? Обратите внимание, что git diff HEAD...branch
дает мне различия, которые мне нужны, но соответствующая команда git log дает мне больше, чем я хочу.
В картинах, пусть это:
x---y---z---branch / ---a---b---c---d---e---HEAD
Я хотел бы получить журнал, содержащий коммиты х, у, г.
git diff HEAD...branch
дает эти фиксаций- однако, дает
git log HEAD...branch
х, у, Z, C, D, E.
Вы используете «git log» неправильно для своих целей из того, что я вижу. Я добавил свой ответ ниже. – PlagueHammer 2012-11-20 02:32:46