Как получить родителей слияния фиксации в git?
некоторые команды git принимают родителя как ревизию; другие (например,git revert), как родительский номер. Как получить родителей для обоих случаев. Я не хочу использовать графическую команду log, так как для этого часто требуется прокручивать длинное дерево, чтобы найти второго родителя.
2 ответов:
простой
git log <hash>вызванный для фиксации слияния показывает сокращенные хэши его родителей:$ git log -1 395f65d commit 395f65d438b13fb1fded88a330dc06c3b0951046 Merge: 9901923 d28790d ...
gitвыводит родителей в соответствии с их числом: первый (самый левый) хэш для первого родителя, и так далее.если все, что вы хотите, это просто хэши, два эквивалентных варианта:
$ git log --pretty=%P -n 1 <commit> $ git show -s --pretty=%P <commit>
git rev-listтакже можно показать хэши родителей, хотя сначала он перечислит хэш для фиксации:$ git rev-list --parents -n 1 <commit>если вы хотите изучить родители, вы можете обратиться к ним непосредственно с карат как
<commit>^1и<commit>^2, например:git show <commit>^1это обобщает; для слияния осьминога вы можете обратиться к nе родитель как
<commit>^n. Вы можете обратиться ко всем родителям с<commit>^@, хотя это не работает, когда один требуется. Дополнительные суффиксы могут появиться после nе синтаксис родителя (например,<commit>^2^,<commit>^2^@), тогда как они не могут после^@(<commit>^@^не действует). Для подробнее об этом синтаксисе читайте вrev-parseman page.
ниже приведен самый простой способ, который я нашел для просмотра родителей слияния
git show --pretty=raw 3706454
Comments