Учитывая слияние, как я могу получить его родителей? Некоторые команды git принимают родителя как ревизию; другие (например, git revert
), как родительское число. Id нравится знать, как получить родителей для обоих случаев. Я не хочу использовать команду графического журнала, так как часто требуется прокрутка длинного дерева, чтобы найти второго родителя.
Получить родителей слиянием в git
Ответ 1
Также обратите внимание, что обычный выход журнала показывает сокращенные хэши родителей, нет необходимости прокручивать:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git всегда печатает их в порядке родительского номера: первый хеш для первого родителя и т.д.
Если вам просто нужны хэши, два эквивалентных варианта:
git log --pretty=%P -n 1 <commit>
git show --pretty=%P <commit>
rev-list
также может показывать родительские хэши для фиксации. Сначала будет указан хэш для фиксации, а затем родители.
git rev-list --parents -n 1 <commit>
Если вы хотите изучить родителей, вы можете обращаться к ним напрямую с каратами как <commit>^1
и <commit>^2
, например:
git show <commit>^1
Это обобщает; для слияния осьминогов вы можете ссылаться на родительский n th как <commit>^n
. Вы можете обратиться ко всем родителям с помощью <commit>^@
, хотя это не работает, когда требуется одно коммит. Дополнительные дополнительные суффиксы могут появиться после синтаксиса n th (например, <commit>^2^
, <commit>^2^@
), тогда как они не могут после ^@
(<commit>^@^
недействительны). Подробнее об этом синтаксисе читайте на странице rev-parse
.
Также обратите внимание, что обычный выход журнала показывает сокращенные хэши родителей:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
Ответ 2
Ниже приведен самый простой способ просмотра родителями слияния
git show --pretty=raw 3706454