我想移动HEAD
,只能这样做。
这意味着我想保持不变:
git reset --soft
执行前两个,但不是最后两个。
有没有办法在不创建新分支的情况下执行此操作?
答案 0 :(得分:2)
您可以通过以下方式实现此目的:
echo $(git rev-parse $commit) > $(git rev-parse --git-dir)/HEAD
但是气馁。
答案 1 :(得分:1)
使用git
管道命令update-ref
:
git update-ref --no-deref HEAD $hash
($hash
可以是SHA1,哈希短格式(例如1c93
),标记或引用)
在reflog
中留下有关更改内容的消息是礼貌的。为此,请创建别名:
head = "!p=\"$(git log -n1 --oneline --decorate)\" && git update-ref --no-deref -m \"Move HEAD from $p\" HEAD \"$1\" #" # Move HEAD to specified commit-ish
然后当你:
git head 1c93
reflog
将包含以下内容:
1c93601 HEAD@{0}: Move HEAD from fd88175 (HEAD -> master, tag: oldhead, origin/master) Add diff-highlight and icdiff