【问题标题】:How to pull a pull request from upstream in github如何在 github 中从上游拉取请求
【发布时间】:2019-01-04 06:10:58
【问题描述】:

我在 github 上创建了一个 repo。 Upstream 中有一些新的拉取请求。我想从本地上游拉一个拉取请求。

我该怎么做?我不知道,也没有发现任何与此相关的东西。

【问题讨论】:

标签: git github git-pull


【解决方案1】:

您应该能够通过首先将上游添加为远程,然后拉取请求来做到这一点:

git remote add upstream https://github.com/USER/repository.git
git pull upstream pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

其中USER 不是您的用户名,而是原始用户名(您从中分叉的用户名),ID 是拉取请求 ID,BRANCHNAME 将是与拉取请求对应的本地分支名称。

如果您想稍后推送到自己的 fork,您可能必须设置上游(来自BRANCHNAME):

git push -u origin BRANCHNAME

【讨论】:

  • 如果您不希望您的 PR 也包含上游 PR 的更改,请使用 pull --rebase
【解决方案2】:

https://help.github.com/articles/checking-out-pull-requests-locally/:

git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

其中ID 是拉取请求编号,BRANCHNAME 是新本地分支的任意名称。

【讨论】:

    【解决方案3】:

    GitHub API supports 使用 PUT 请求合并服务器上的拉取请求。因此,您可以在本地执行 PUT 并合并拉取请求。

    但请注意,这仅表示服务器上发生了合并。如果您在某个分支上,比如master,并且您远程触发了拉取请求,如果您想要最新的内容,您仍然需要拉取:

    git pull origin master
    

    【讨论】:

      【解决方案4】:

      拉取请求不是 git 功能,它是一个工作流,因此如果需要复制,则必须遵循。所以唯一的办法就是在本地做同样的事情。

      git checkout featureA # as it has to be on origin
      git checkout master/develop
      git merge featureA
      

      此时您处于拉取请求的状态。

      【讨论】:

        【解决方案5】:

        试试这个 - 做一个

        git pull
        

        为了确保你在 master 中有最新的变化,然后在 master 分支上,做一个

        git checkout <branch name >
        

        到有 PR(pull request) 的期望,最后做一个

        git pull
        

        在那个分支上。我相信它应该拉取具有拉取请求的分支的当前状态。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-11
          • 1970-01-01
          • 1970-01-01
          • 2019-05-07
          • 2012-01-17
          • 2015-05-14
          • 2013-02-03
          • 1970-01-01
          相关资源
          最近更新 更多