前言
分工开发半年的项目最近准备合并成一个内测版本,小组长合并到develop分支后,我想checkout到这个分支看看具体情况,然后自然而然用起了下面的语句:(错误做法)
//确定develop的位置
git branch -a
//切换分支
git checkout develop
//拉取分支
git pull
结果原本已经合并完的develop分支出现了文件冲突(develop|MERGING),这就很奇怪了。先检查git日志:
git log
发现拉取下来的代码最新的commit是去年11月的,这与实际情况不对,大概率是我弄错了。直接删除当前该develop分支:
git branch -d develop
返回无法删除,使用强制删除命令:
git branch -D develop
同样不行。查找资料后,才知道需要将当前位于develop|MERGING的节点移动到develop上才能删除:
//重置节点
git reset --hard head
//强制删除分支。因为没有解决冲突,所以无法使用-d删除
git branch -D develop
正确操作
删除完异常分支后,需要重新checkout到develop分支:
//确定develop的位置
git branch -a
//checkout与pull对应的develop分支
git checkout -b develop origin/develop
//检查提交日志
git log
//时间对得上,完成