当前位置: 首页 > 面试题库 >

修复Git分离头?

龙弘济
2023-03-14
问题内容

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

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. 如果您希望合并所做的更改master,请git merge tmp从master分支运行。master运行后,您应该在分支上git checkout master


 类似资料:
  • 我在我的存储库中做了一些工作,发现一个文件有本地更改。我不再需要它们了,所以我删除了文件,以为我可以签出一份新的副本。我想做Git等效的 使用git pull似乎不起作用。一些随机搜索让我找到了一个有人推荐的网站 (

  • 我是Git和Jenkins的新手,我的问题是我无法让Jenkins Maven发布插件正常工作。 当我用Jenkins构建一个普通的Maven构建时,它工作得很好,但是当我尝试用Maven发布插件执行发布时,我得到了以下堆栈跟踪: 失败的命令和错误消息是: 我发现Jenkins Git插件创建了一个分离的HEAD ref“(无分支)”,我认为这是问题的根源。但我完全不知道为什么会创建这个ref,也

  • 你处于“超脱的脑袋”状态。您可以四处查看,进行实验性更改并提交它们,并且可以丢弃在此状态下进行的任何提交,而不会通过执行另一次签出影响任何分支。 显然我可以签出“master”,但这是一个模棱两可的引用。我只想知道消除分支名称歧义的“Git方式”是什么,而不分离Head。

  • 假设我们在Git中有以下情况: > 创建的存储库: 主服务器中的某些修改发生并提交: 功能1从master分支,完成了一些工作: 同时,在主代码中发现一个bug,并建立一个热修复分支: 该错误在修补程序分支中修复,并合并回主程序(可能在拉取请求/代码审查之后): 功能1的发展仍在继续: 假设我需要功能分支中的修补程序,可能是因为bug也发生在那里。如何在不将提交复制到功能分支的情况下实现这一点?

  • 我对我的剧本进行了修改,彻底打破了它。我尝试使用以下命令还原到git中以前的提交: 但是现在我被困在一个独立的头脑里: 我正在工作的分支机构叫做:update_aws_delete_user_function。 我目前不在master branch工作。 如何将散列2af6889中的函数文件合并回名为origin/update\u aws\u delete\u user\u函数的主分支?

  • 怎么修这个东西?我需要“Karetski”用户名而不是“Pavelmetsko”