2016-11-20 100 views
3

我明白底下发生了什么,当我运行$ git checkout --detach为什么我会用git checkout --detach

虽然在master,当我$ git checkout --detach,我.git/HEAD没有指向ref: refs/heads/master但哈希代替(同一个作为refs/heads/master)。

什么是用例,当我真的想要这样做?

+2

事实上,你永远不需要'--detach' *标志*,因为你可以简单地将修订说明符拼写为'refs/heads/master'。所以国旗本身只是为了方便。尽管奥利弗·查尔斯沃斯的答案是正确的 - 这只是一个关于要求它的拼写方式。 :-) – torek

回答

5

按照commit that introduced the flag

例如,人们可以作出临时合并时 测试两个主题很好地协同工作使用。

我想这个想法是,故意的分离允许你做出进一步的提交,你知道一旦你完成(并且一旦GC已经运行)就会被丢弃。

请注意,此标志实际上并未添加任何新功能;你以前可以用git checkout some-branch^0达到相同的结果。

+0

因此,我分离了当前分支的顶端,尝试将某些东西合并到分离的HEAD中,看看它会多么容易,做一些额外的提交 - 用于测试目的,然后运行构建/测试(不管)结果,如果一切都看起来不错,去“真正的”合并......对吗? – jkulak

+0

@jkulak - 是的,我想这就是评论的意思。虽然我自己从来没有必要这样做;) –

相关问题