В распределенном виде Mercurial не хранит информацию о том, какие ревизии вы извлекли ранее - но в Mercurial 3.9 имеется экспериментальное расширение, называемое Journal , которое, если оно включено, делает.Также обратите внимание, что hg pull
не обновляется до какой-либо новой ссылки, если вы не укажете это, т. Е. Это намного больше похоже на git fetch
, чем на git pull
. 1
Gitсохраняет эту информацию в reflog для специального ссылочного имени HEAD
. 2 Это зависит от того, включены ли reflogs enabled ;Вы можете отключить их.По умолчанию для нормального рабочего репозитория они включены.
После git merge
или git rebase
(т. Е. Во второй половине git pull
) HEAD@{1}
извлекает первую запись в reflog,Предполагая, что вы выполнили успешное слияние или перебазирование (поэтому предыдущее значение HEAD
- это старая ссылка), вы получите предыдущее значение HEAD
.Если вы сделали ребаз, и он потерпел неудачу и нуждался в человеческой помощи, предыдущий HEAD
снова возвращается в журнал, но ORIG_HEAD
будет указывать на предыдущий коммит.Reflog для текущей ветки также будет полезен.
1 К счастью, в мире мало таких вещей, как git pull
, потому что git pull
плохоразработан инструмент удобства, которые часто более неудобно, чем удобно.
1035 *
2 ли
HEAD
действительно ссылка имя спорно.Для целей reflog, это.