很有可能您在Git生涯中永远不会遇到这种“神秘”状态。但是,如果您有一天做,您可能想知道什么是“分离的HEAD”-以及如何达到该状态。
使用“ git checkout ”命令,您可以确定要处理的项目版本。然后,Git将该修订的所有文件都放在您的工作副本文件夹中。
通常,您使用分支名称与“ git checkout”进行通信:
$ git checkout development
但是,您也可以提供特定提交的SHA1哈希值:
$ git checkout 56a4e5c08
Note: checking out '56a4e5c08'.
You are in 'detached HEAD' state...
这种确切的状态-当签出特定的提交而不是分支时 -称为“分离的HEAD”。
Git中的HEAD指针确定您当前的工作版本(并因此确定放置在项目工作目录中的文件)。通常,当签出正确的分支名称时,Git在创建新提交时会自动将HEAD指针移动到一起。您将自动进入所选分支的最新提交。
当您改为选择检出提交哈希时,Git不会为您执行此操作。结果是,当您进行更改并提交更改时,这些更改不属于任何branch。
这意味着一旦您签出其他修订版或分支,它们就很容易丢失:没有记录在分支的上下文中,您将无法轻松访问该状态(除非您有出色的记忆力并且可以记住的提交哈希)新提交…)。
在少数情况下,分离的HEAD状态很常见:
另外,可能会想到另一种情况:如何及时返回以尝试项目的较旧版本?例如,在错误的上下文中,您想查看在较旧的版本中情况如何。
这是一个完全有效且常见的用例。但是,您不必让自己进入独立的HEAD状态即可应对。相反,请记住分支的整个概念在Git中多么简单和便宜:您可以简单地创建一个(临时)分支,并在完成后将其删除。
$ git checkout -b test-branch 56a4e5c08
...do your thing...
$ git checkout master
$ git branch -d test-branch
shell中如何选择[]或[[]]?最佳VPN回国方案推荐 – 安全高效翻墙上网2024年10月5日:高速韩国(春川市)Twitter(X)付费机场推荐和(大道区)美国-(沃尔特公园)美国Twitter(X)免费机场节点天速VPN: 功能、优势和使用教程Shadowsocks服务器:选择、配置和常见问题重庆大学VPN使用指南VPN连接中国:原理、使用方法及常见问题5G网络有什么功能安卓手机上Clash订阅价格:教程、常见问题详解Clash手机安卓版如何使用在 MacOS 上使用 ClashX 的设置图文教程SSR节点购买推荐 | 好用的Clash SSR 翻墙机场推荐2025 最新苹果美区 Apple ID 账号注册教程FlClash下载 最新Clash for Windows电脑/安卓Android手机/苹果macOS/Linux全平台客户端FIClash Android 版下载与使用教程:详细图解