一尘不染

如何修复 Git 分离头?

git

我正在我的存储库中做一些工作,并注意到一个文件有本地更改。我不再想要它们,所以我删除了文件,以为我可以签出一个新副本。我想做的 Git 相当于

svn up .

使用git pull似乎不起作用。一些随机搜索把我带到了一个有人推荐做的网站

git checkout HEAD^ src/

src是包含已删除文件的目录)。

现在我发现我有一个分离的头。我不知道那是什么。我该如何撤消?


阅读 177

收藏
2022-02-16

共1个答案

一尘不染

分离的头意味着你不再在一个分支上,你已经签出了历史中的一个提交(在这种情况下是 HEAD 之前的提交,即 HEAD^)。

如果要删除与分离的 HEAD 关联的更改

您只需要检查您所在的分支,例如

git checkout master

下次你更改了一个文件并想将它恢复到它在索引中的状态时,不要先删除文件,只需执行

git checkout -- path/to/foo

这会将文件 foo 恢复到它在索引中的状态。

如果您想保持与分离的 HEAD 相关联的更改

  1. 运行git branch tmp- 这会将您的更改保存在一个名为tmp.
  2. git checkout master
  3. 如果您想将所做的更改合并到中,请从分支master运行。运行后你应该在分支上。git merge tmp``master``master``git checkout master
2022-02-16