Я новичок в git и пытаюсь понять HEAD и HEAD^. Когда я пытаюсь выполнить git rev-parse, я вижу, что HEAD и HEAD^ показывают один и тот же идентификатор фиксации.
Примечание. Последняя фиксация — это фиксация слияния, произошедшая в результате слияния запроса на включение. Пожалуйста, помогите мне понять или дайте мне знать, если я что-то упускаю.
Скриншот:
git log
должен показать вам и HEAD
, и фактического (отдельного) родителя HEAD
.
Поскольку вы упомянули, что вы новичок, возможно ли, что на данный момент в вашей ветке есть только один коммит?
Нет, у меня есть несколько коммитов, и последний коммит выполнен с помощью запроса на слияние с основной веткой.
Кажется, ваш первый комментарий верен, поскольку, когда в конце команды есть ^, он рассматривается как новая строка и просто показывает фиксацию, связанную с HEAD. Спасибо за оперативную помощь.
^
— это escape-символ cmd.exe
, например \
в unix. Вы набрали ^
в конце строки, и cmd предложил вам продолжить строку,
Скажите echo ^
(с пробелом в конце), чтобы увидеть, что увидел рев-анализ.
Закавычивайте свои аргументы, если они содержат какой-либо синтаксис построения командной строки вашей оболочки, который вы не хотите использовать таким образом.
Делает ли командная оболочка что-то с
^
, чтобыgit rev-parse
видел только фактический аргументHEAD
в обоих случаях?