今天碰到一个问题,先描述下出现的步骤,我在github上面有两个分支,一个是master,一个是hexo,首先我拉取了远程分支到本地,此时通过命令git checkout hexo,切换到hexo分支,然后删除hexo下面的部分文件,然后输入命令
-
git add .
-
git commit -m "提交说明"
-
git push origin hexo
在命令行提示Everything up-to-date,到github上面查看,实际代码并没有提交,并且此时看到当前分支并不是hexo,于是先通过命令git branch查看当前分支,发现当前处在HEAD detached from origin/hexo上,首先我们知道Head文件是指向当前的分支,那么Head detached from origin/hexo 就意味着当前我本地的分支已经从origin/hexo分支上面分离,没有关联了,这也导致了我的代码实际上并没有push到origin/hexo分支。
这个问题的解决方法是,基于本次的提交也就是上图的4f690b8,创建一个临时的分支,这样可以先把本次的提交记录保存到临时分支,然后在切到实际需要更新的hexo分支,将临时分支的修改合并到hexo分支,最后在提交至hexo分支。执行步骤如下:
-
git branch temp 4f690b8 (从4f690b8拉出临时分支temp)
-
git checkout hexo (切换到hexo分支)
-
git merge temp (将temp分支的提交合并到hexo分支)
-
gitpush origin hexo (推送代码至origin)
-
git branch -d temp (删除临时分支)