在过去的20-30次提交中,我一直处于超级头状态:
> git status
HEAD detached from ac83503
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
我最初没有注意到我处于这种状态.现在我希望这个独立的头部成为我的主要分支,所以我给它起了个名字
> git branch the-good-one
Run Code Online (Sandbox Code Playgroud)
最后一个命令没有提供任何反馈,但看起来它现在可以了:git log | head -1显示:
fc876a2 Tue Mar 7 23:10:14 2017 (HEAD, the-good-one) This is the commit message.
Run Code Online (Sandbox Code Playgroud)
然而git status 仍然回复:
HEAD detached from ac83503
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
是否指定了一个不足以撤消分离头状态的git分支名称?
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,而不是新创建的提交.
经验法则:永远不要在分离头状态下做任何实际工作.如果要测试较旧的版本,它很有用,但如果需要进行更改,请始终创建(并签出)分支.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |