是否指定了一个不足以撤消分离头的git分支名称?

时间:2017-03-08 04:50:45

标签: git

在过去的20-30次提交中,我一直处于超级状态:

> git status
HEAD detached from ac83503
nothing to commit, working tree clean

我最初并没有注意到我处于这种状态。现在,我希望这个独立的头脑成为我的主要分支,所以我give it a name

> git branch the-good-one

最后一个命令没有提供任何反馈,但它似乎现在可以了:git log | head -1显示:

fc876a2 Tue Mar 7 23:10:14 2017 (HEAD, the-good-one) This is the commit message.

然而git status 仍然回复:

HEAD detached from ac83503
nothing to commit, working tree clean

是否指定了一个不足以撤消分离头状态的git分支名称?

1 个答案:

答案 0 :(得分:5)

git branch只创建一个分支,它不会结帐。执行git checkout the-good-one检查新创建的分支。

同时创建和签出的简写是git checkout -b <branchname>

尝试在编辑后澄清事情:

你的出发点是一个独立的头状态(顺便说一句,这可能是不寻常的,也许你的工作流程中有些奇怪的东西?)。所以,你的HEAD指向一些提交,让我们称之为a。然后使用命令git branch the-good-one创建一个新分支。没有任何进一步的参数,它会在当前HEAD上创建分支,因此新创建的分支也将指向a

你的困惑似乎在这里:因为你当前的(分离的)HEAD碰巧指向与新分支相同的提交,它并不意味着你当前在新的分支上。因此,如果您创建新提交,the-good-one仍将指向a,而不是新创建的提交。

经验法则:永远不要在超级头状态下做任何实际工作。如果您想测试较旧的版本,它很有用,但如果您需要进行更改,请始终创建(并结帐)分支。

相关问题