Git - идентификатор разбора n-го коммита - PullRequest
0 голосов
/ 12 июня 2019

допустим, у нас есть последние 5 коммитов:

git log -n 5

xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
yyyyyyyyy # <== this is what I want

как я могу получить только ID коммита yyyyyyyyy?

git rev-parse HEAD # will return the HEAD commit id, how can I say -5?

Ответы [ 3 ]

1 голос
/ 12 июня 2019

git rev-parse HEAD~5 (или ~ 4, не уверен, какой из них вам нужен).

В случае коммита слияния он будет проходить по первому родителю.

Вы найдете больше информацииздесь: https://git -scm.com / book / ru / v2 / Git-Tools-Revision-Selection

0 голосов
/ 12 июня 2019

Если это 5-й коммит в выходных данных git log,

git log --oneline --pretty=%H -5 | sed -n 5p

HEAD~4 может не быть 5-м коммитом в выходных данных git log, если история не является линейной.

0 голосов
/ 12 июня 2019

Символ, который вы ищете, имеет постфикс ~ (и число)

HEAD~5

относится к n-му предку HEAD commit.

Not toпутать с постфиксом ^, что означает n-й родитель назначенного коммита (коммит может иметь более 2 родителей).

Если число опущено, оно принимается равным 1.

(Это также причина, по которой HEAD^ и HEAD~ ссылаются на один и тот же коммит.)

Проверьте очень информативный doc по теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...