明升手机版(中国)官方网站

明升手机版

查看提交记录 

git log

记录ID 回滚到某一提交记录  

git reset –hard

分离头指针(detached HEAD)#

detached HEAD

通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例如 checkout 了某个具体的 commit),master 指针 和 HEAD 指针这种「绑定」的状态就被打破了,变成了分离头指针状态。我那天遇到的情况是,master 和 HEAD 指针看上去指在同一个 commit 上,但其实已经处在分离头指针状态。当我在此时又做了一次新的提交时,HEAD 指针跑到 master 指针前面去了。如果我直接检出 master 分支,HEAD 指针就会回退一格到 master 指针的位置,而最新的那次提交就变成了孤立的提交,没有任何分支能追踪到它,刚才的活白干了。

吃一堑长一智,下面是解决办法:

# 强制将 master 分支指向当前头指针的位置
git branch -f master HEAD

# 检出 master 分支
git checkout master

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注