最终会发生什么,Git称之为分离的头

时间:2018-05-11 00:06:28

标签: git smartgit

我想通过SmartGit恢复之前的提交。通过SmartGit我选择了一个早先的提交并做了检查。我被提示输入分支名称。我选择不创建分支,因为当我想要做的就是在现有分支上“及时移动”时,创建分支似乎是不必要的,甚至是愚蠢的。这导致头部分离。在一个独立的头上继续开发似乎是一个坏主意,所以我没有继续。

我切换到命令行并执行git log来识别我感兴趣的早期提交的哈希码。我做了git reset --hard 0dfc994b23ea

现在git log似乎来自较早的时间,这就是我想要的。同样,SmartGit看起来还不错。在git log和SmartGit(至少表面上)都没有任何迹象表明我的错误(分离头)。超然的头会发生什么?

1 个答案:

答案 0 :(得分:0)

让我简单解释一下。分离的HEAD意味着您的工作树“指向”您要求git结帐的修订版,从这里您可以“照常”工作。你可以提交东西,合并东西,等等。唯一的事情是git不会移动任何“分支”(也就是修订指针),因为你没有签出“分支”而是修改(如果你要求用--detach签出分支,可以实现同样的事情) 。如果你想快速做一些事情并且不想要一个真正的指针,那么分离的HEAD是非常有用的(比如....做一个快速测试并回到你之前工作的地方。创建分支的重点是什么为了回到过去,然后回到你之前工作的地方,然后删除你“暂时”创建的分支只是为了能够结账?)。长话短说:你可以从你的“独立头部”位置移动到你喜欢的任何地方,它不会有所作为。

作为旁注...当你提供范围的修订时,git reset - hard会做什么?因为我只使用它提供单一版本。刚刚检查了 git help reset ,我看不到它。