git checkout tag报错 * (no branch) 提示 detached HEAD

git clone Spark源码后想切换到指定的标签版本:2.0.2,但是一直切换不了,报错是:

[root@cm03 spark]# git checkout v2.0.2
Note: checking out 'v2.0.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 584354e... Preparing Spark release v2.0.2-rc3

git checkout tag报错 * (no branch) 提示 detached HEAD_第1张图片
意思是说:
你现在所在的版本处于游离状态,也就是说你现在的代码版本与git仓库里的断开联系了,什么什么的。

然后就出现了git就处于: * (no branch)的状态的

[root@cm03 spark]# git branch
* (no branch)
  master

git checkout tag报错 * (no branch) 提示 detached HEAD_第2张图片
查了很多资料,最后发现是因为:
tag标签相当于是一个快照,是不能更改它的代码的(玛尼,我只是想编译一想这个版本的程序而已),再加上git版本太低了(我是在Centos下操作的,使用的git是Centos自带的git ), 于是就报错了。
好了原因找到就好办了,解决办法有两种:
方法一:分析tag标签创建一个新的分支
既然tag只是代码的一个快照,那就把这个快照复制出来另行操作
git分析指定的tag标签创建分支的命令:

git checkout -b branch_name tag_name

branch_name是要创建的分支的名称
tag_name是tag标签的名称

方法二:升级git版本
参考:
http://mp.blog.csdn.net/mdeditor/index/79282643
再次git切换到指定的tag标签

## 切换到指定的tag版本标签
git checkout v2.0.2

## 查看是否切换成功
git branch

发现新版本的git只是警告而已,还是能切换到想要的tag上的
git checkout tag报错 * (no branch) 提示 detached HEAD_第3张图片

你可能感兴趣的:(管理工具)