【问题标题】:Can't checkout out a remote branch which has been merged on Github无法检出已在 Github 上合并的远程分支
【发布时间】:2017-12-15 17:04:59
【问题描述】:

我在从 Github 签出远程分支时遇到了一个奇怪的问题。

场景:

我从 Github 上查看了一个 repo 的 master 分支。然后我创建了一个本地分支branch_a 并进行了更改。我将更改提交到 branch_a 并将它们推送到 Github。我为branch_a 创建了一个拉取请求,该请求已获得批准,并将其合并到master。拉取请求后我没有删除分支。

后来我克隆了一个新的 repo 副本并尝试检查 branch_a。但是,当我尝试使用git checkout branch_a 签出分支时,git 会默默地失败,我仍然留在master 上。最奇怪的是,当我调用git branch -a 时,我可以看到分支远程存在。

为了解决这个问题,我尝试创建一个与branch_a 同名的新本地分支并进行了一些更改。我推送了这些更改,并且能够为分支创建另一个拉取请求。但是,如果我克隆该存储库的另一个副本并尝试签出该存储库,我会遇到同样的问题,即我无法通过拉取请求中的待处理更改签出远程 branch_a

【问题讨论】:

  • 在你运行git remote prune origin 之后你还看到它吗,它告诉git 删除已经远程删除的本地远程分支。 prune
  • 是的,它还在
  • 我可以签出一个名为 branch_a 的远程分支。你的 github 仓库是公开的吗?如果它是公开的,您能否提供链接,以便我可以针对您遇到的问题测试 repo?顺便说一句:是否仅适用于您无法结帐的branch_a 或您也无法结帐的所有其他远程分支?

标签: git github version-control merge


【解决方案1】:

如果分支位于远程源中,并且您正尝试从此远程结帐

运行git fetch origin branch_a,然后结帐git checkout origin/branch_a

【讨论】:

    【解决方案2】:

    这对我有帮助

    git fetch --all
    
    git checkout master
    
    git branch new_branch
    
    git checkout new_branch
    

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 2018-12-23
      • 2015-09-26
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      相关资源
      最近更新 更多