当前位置: 首页 > 知识库问答 >
问题:

如何修复Git分离的头部?

俞学
2023-03-14

我在我的存储库中做了一些工作,发现一个文件有本地更改。我不再需要它们了,所以我删除了文件,以为我可以签出一份新的副本。我想做Git等效的

svn up .

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

git checkout HEAD^ src/

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

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


共有3个答案

公孙茂学
2023-03-14

无需创建临时分支的解决方案。

当您已经在此模式下更改了某些内容,并且希望保存更改时,如何退出(“修复”)分离的头部状态:

>

  • 提交要保留的更改。如果你想接管你在分离状态下所做的任何更改,请提交它们。例如:

    git commit -a -m "your commit message"
    

    放弃不想保留的更改。硬重置将放弃您在分离头部状态下所做的任何未提交的更改:

    git reset --hard
    

    (如果不这样做,步骤3将失败,抱怨分离的头部中修改了未提交的文件。)

    检查您的分支。通过检查您之前处理的分支退出分离HEAD状态,例如:

    git checkout master
    

    接管您的promise。你现在可以通过樱桃采摘来接管你在分离状态下做出的promise,如我对另一个问题的回答所示。

    git reflog
    git cherry-pick <hash1> <hash2> <hash3> …
    

  • 阴飞星
    2023-03-14

    如果您已经更改了不想丢失的文件,可以推送它们。我已经在分离模式下提交了它们,之后您可以移动到临时分支,以便稍后在master中集成。

    git commit -m "....."
    git branch my-temporary-work
    git checkout master
    git merge my-temporary-work
    

    摘自:

    如何处理分离头中的提交

    颜新
    2023-03-14

    分离的头表示您不再在分支上,您已签出历史记录中的单个提交(在本例中,是在头之前的提交,即头^)。

    您只需签出您所在的分支机构,例如。

    git checkout master
    

    下次您更改了一个文件并想将其恢复到索引中的状态时,先不要删除该文件,只需这样做

    git checkout -- path/to/foo
    

    这将把文件foo恢复到索引中的状态。

    1. 运行git branch tmp(git branch tmp),这将把您的更改保存在一个名为tmp(git branch tmp)的新分支中
     类似资料:
    • 问题内容: 我在存储库中做一些工作,发现文件有本地更改。我不再想要它们了,所以我删除了文件,以为我可以签出新副本。我想做相当于 使用git pull似乎没有用。一些随机搜索将我带到一个有人建议这样做的站点 (src是包含已删除文件的目录)。 现在我发现自己有一个超脱的头。我不知道那是什么。我该如何撤消? 问题答案: 分离的头部意味着您不再在分支上,您已签出历史记录中的单个提交(在这种情况下,是HE

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

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

    • 詹金斯v2。19 Git插件v2。5.3 在分支构建下,我指定了2个分支: 和 这将导致在{git commit hash}处分离

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

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