通常我们在首次进行代码的拉取的时候容易出现HEAD游离状态, 也就是说当前操作不在任何一个现有分支上, 一般情况下我们在进行代码修改时需要先将对分支进行相应切换, 比如在master
分支上进行开发, 那就git checkout master
切换到master
分支
但是很多情况下我们容易忽视这个习惯, 导致代码提交时才发现处在游离分支上, 这个时候如果进行分支的强行切换意味着所做的代码修改全部付之一炬, 那我们该如何处理这种情况呢?
事实上, git
已经给我们提供了相应的智能提示, 在我们push
代码时会警告提示我们:
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
84220ac update
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 84220ac
Switched to branch 'master'
这时我们只需要新开一个分支存储游离的内容, 然后再将两个分支进行合并即可
第一步 将游离部分代码放到一个临时分支
第二步 切换到开发主分支
第三步 将临时分支代码合并到开发主分支
第四步 删除临时分支
本方案适用于代码还未commit
第一步 将游离代码放置到暂存区域
第二步 将暂存区域的代码pop出来到当前分支