我如何使用github UI或通过命令行从主项目分支应用拉请求到我的fork



我希望应用这个pull request

https://github.com/MonoGame/MonoGame/pull/5114

https://github.com/Danthekilla/MonoGame

乍一看似乎没有办法做到这一点,有办法用TortoiseGit吗?

也许是这样的命令?:

git merge https://github.com/Danthekilla/MonoGame https://github.com/MonoGame/MonoGame/pull/5114

您必须在最初创建拉取请求时指定要执行拉取请求的存储库和分支。我敢说,没有任何方法可以编辑现有的拉取请求来做到这一点。

来自GitHub web UI

  1. 进入你想要从(https://github.com/Jjagg/MonoGame)中提取的repo
  2. 选择要拉出的分支(getbackbufferdata)
  3. 点击新建拉取请求
  4. 如果要拉到的分支没有出现在拉取请求创建页面的顶部,那么点击"跨分支比较"
  5. 在左侧,选择要拉到
  6. 上的基本存储库和基本分支。
  7. 点击查看拉取请求

从命令行

$ git checkout develop
$ git pull https://github.com/Jjagg/MonoGame/getbackbufferdata

(注意:我不是100%确定上面命令中的URL)

如果你不想直接合并到develop分支,你可以创建一个临时分支来合并。例如

$ git checkout -b jjagg/getbackbufferdata develop
$ git pull https://github.com/Jjagg/MonoGame/getbackbufferdata

如果你经常需要从属于其他贡献者的GitHub repo中提取,你可以为该repo创建一个远程

$ git remote add jjagg https://github.com/Jjagg/MonoGame

现在你可以直接从这个远程

$ git checkout -b jjagg/getbackbufferdata develop
$ git pull jjagg getbackbufferdata

有了命令行补全,所有这些都变得简单了一些。一旦远程添加,您可以键入git pull j,然后按Tab键完成远程名称。然后,在git pull jjagg g之后再次使用Tab键完成分支名称。如果两个分支以g开头,则双制表符将显示所有可能的选择。