我正在学习git并且正在遵循http://gitimmersion.com的优秀教程。
在这些教程中,有一个模糊试图解释分离的HEAD,并指出:
git中的“分离的HEAD”消息只是意味着HEAD(跟踪当前工作目录应匹配的内容的git部分)直接指向提交而不是分支。只有在您不切换到其他分支时,才会记住在此状态下提交的任何更改。一旦您签出新的分支或标签,分离的提交将“丢失”(因为HEAD已移动)。如果要保存以分离状态完成的提交,则需要创建一个分支来记住提交。
关于这个问题:
提前致谢!
答案 0 :(得分:6)
如果您正在使用您的仓库并执行git checkout <SHA>
,那么您将处于“独立头部”。您不在分支上(提交可能在多个分支上)。您已签出历史记录中的特定实例。
当您进行变基时,也可能出现分离的头部。您已签出特定提交。
您需要创建一个分支才能提交/推送更改,因为您将创建“陷入困境”的提交,除了SHA之外无法识别它们。 Git将在垃圾收集期间删除提交,因为它不在分支上。
查看此页面上的“独立头部”部分,了解更多深入信息: http://git-scm.com/docs/git-checkout