如果我做git checkout HEAD^
,我得到这个:
$ git checkout HEAD^
Note: checking out 'HEAD^'.
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...
$
字符串
资深的git用户可能对此非常熟悉。但是如果我执行git checkout HEAD
,什么也没有发生:
$ git checkout HEAD
$
型
我想在当前分支的头部为提交创建“detached HEAD”状态。我该怎么做?
2条答案
按热度按时间30byixjq1#
从git 1.7.5(2011年4月)开始,可以使用
git checkout --detach
命令。(Since Git 2.23 (Q3 2019),您可以使用
git switch --detach
)参见commit 326696
checkout
:引入--detach
的同义词“git checkout foo^{commit}
“例如,在进行临时合并以测试两个主题是否能够很好地协同工作时,可以使用此方法。
Commit 8ced1aa(git 1.7.11.3,2012年7月)不允许在未出生的分支上使用
--detach
,所以这不会在空HEAD
上失败:字符串
只有即将发布的git 1.8.4.2或1.8.5(2013年第4季度)会澄清语法。请参阅commit 26776c9:
将这种情况分成两种语法形式,模仿DESCRIPTION部分显示这种用法的方式。
另外,更新解释语法的文本,将提交命名为detach
HEAD
at,以澄清。型
准备在
<commit>
上工作,通过在HEAD
上分离HEAD
(参见“DETACHEAD”部分),并更新索引,树将是提交中记录的状态加上本地修改。1.当x1m10 n1x参数是一个分支名称时,x1m11 n1x选项可用于分离分支顶端的x1m12 n1x(x1m13 n1x将检出该分支,而不分离x1m14 n1x)。
1.省略
<branch>
会在当前分支的顶端分离HEAD
。最后一点正是你想为你当前的分支做的:
型
b4qexyjb2#
此命令从任何给定的分支名称(在本例中为master)创建分离的head状态:
字符串
检出提交哈希也会自动创建一个分离的头状态,不需要
^0
:型
当然,也包括较短的哈希:
型