Git HEAD detached from XXX (git HEAD 游离) 解决办法

起因

通常我们在首次进行代码的拉取的时候容易出现HEAD游离状态, 也就是说当前操作不在任何一个现有分支上, 一般情况下我们在进行代码修改时需要先将对分支进行相应切换, 比如在master分支上进行开发, 那就git checkout master切换到master分支

但是很多情况下我们容易忽视这个习惯, 导致代码提交时才发现处在游离分支上, 这个时候如果进行分支的强行切换意味着所做的代码修改全部付之一炬, 那我们该如何处理这种情况呢?

事实上, git已经给我们提供了相应的智能提示, 在我们push代码时会警告提示我们:

1
2
3
4
5
6
7
8
9
10
11
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'

这时我们只需要新开一个分支存储游离的内容, 然后再将两个分支进行合并即可

解决方案一

  1. 第一步 将游离部分代码放到一个临时分支

    1
    git branch temp 84220ac
  2. 第二步 切换到开发主分支

    1
    git checkout master
  3. 第三步 将临时分支代码合并到开发主分支

    1
    git merge temp
  4. 第四步 删除临时分支

    1
    git branch -d temp

解决方案二

本方案适用于代码还未commit

  1. 第一步 将游离代码放置到暂存区域

    1
    git stash
  2. 第二步 将暂存区域的代码pop出来到当前分支

    1
    git pop

本文为作者原创 转载时请注明出处 谢谢

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%