git - 如何修复 Git 分离头?

标签 git git-detached-head

我在我的存储库中做一些工作,并注意到一个文件有本地更改。我不再需要它们,所以我删除了文件,以为我可以 checkout 一份新副本。我想做 Git 等价物

svn up .

使用 git pull 似乎没有用。一些随机搜索将我带到了一个有人推荐的网站

git checkout HEAD^ src/

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

现在我发现我有一个独立的头脑。我不知道那是什么。如何撤消?

最佳答案

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

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

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

git checkout master

下次你改变了一个文件并想把它恢复到它在索引中的状态时,不要先删除文件,直接做

git checkout -- path/to/foo

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

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

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

关于git - 如何修复 Git 分离头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228760/

相关文章:

git - 'git diff' 文档指的是 'source' 和 'destination' 但没有说明哪个对应于索引

git 。如何查看 HEAD 之后的修订版本?

git - 恢复由于分离头而意外丢失的提交

git - 如何以分离头模式将文件提交到分支

git - GIT和CVS之间的区别

git - 在 Visual Studio + VSO + Git 中复制门控 checkin 功能

php - 将 SQL 上传到公共(public) git 存储库是否安全并建议?

git - Azure DevOps Pipeline 仅在特定标签上运行

git - 如何将分离的 HEAD 中的更改提交到 git 中的新分支

git - 为什么在检查最近的提交后我有一个分离的 HEAD?