Как получить родителей слияния фиксации в git?



некоторые команды git принимают родителя как ревизию; другие (например,git revert), как родительский номер. Как получить родителей для обоих случаев. Я не хочу использовать графическую команду log, так как для этого часто требуется прокручивать длинное дерево, чтобы найти второго родителя.

579   2  

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-parse man page.

ниже приведен самый простой способ, который я нашел для просмотра родителей слияния

git show --pretty=raw 3706454

Comments

    Ничего не найдено.