gpt4 book ai didi

git - check out 分支后分离 HEAD;如何 `push` ?

转载 作者:行者123 更新时间:2023-12-03 15:57:08 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does Git tell me "Not currently on any branch" after I run "git checkout origin/<branch>"?

(2 个回答)


3年前关闭。




这是我所做的:

  • checkout 远程 git 存储库。
  • 添加到 [remote "origin] .git/config的部分:
  • fetch = +refs/heads/release/BranchName:refs/remotes/origin/release/BranchName
  • 查出对应的分支:
  • git checkout origin/release/BranchName
    之后 git status报道:

    HEAD detached from origin/release/BranchName


  • 添加并检查了一些修改。
  • 尝试到 git push .这导致了错误消息:

  • fatal: You are not currently on a branch. To push the history leading to the current (detached HEAD) state now, use

    git push origin HEAD:<name-of-remote-branch>

  • 然后我按照建议的命令操作:
  • git push origin HEAD:origin/release/BranchName
    并得到以下信息:

    error: unable to push to unqualified destination: origin/release/BranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'RepositoryName`



    因此,问题是:我做错了什么?如何解决这个问题并 push 更改?

    最佳答案

    字符串 origin/release/BranchName包含远程名称( origin )和远程分支名称( release/BranchName )。建议的命令将这些作为单独的参数,因此您应该运行:

    git push origin HEAD:release/BranchName

    要了解出了什么问题,您必须了解在 git 中,分支实际上并不存在;分支只是指向某个提交的方便指针。对于本地分支,有一些方便的机制可以在您提交时移动该指针,但是对于远程分支,则不会发生这种情况(因为您在运行 push 之前不会更新远程指针)。

    当你跑:
    git checkout origin/release/BranchName

    Git 查找远程分支,找出它指向的提交,并检查该提交。然而,它没有创建或更新任何本地分支,所以当你提交时,没有创建新的指针,只是一堆提交。这就是“分离的 HEAD”的意思——你已经检查了一些东西,但它没有“附加”到任何分支。

    你应该运行的是:
    git checkout -t origin/release/BranchName

    或这个:
    git checkout release/BranchName

    在每种情况下,假设您还没有名为 release/BranchName 的本地分支。 ,git 将计算出您想要的是一个新的本地分支,它“跟踪”(与 pushpull 命令相关联)同名的远程分支。

    然后,当您提交时,您将提交到一个普通分支,并且不会出现“分离头”错误。

    关于git - check out 分支后分离 HEAD;如何 `push` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52390416/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com