49

我已将此添加到我的.git/config文件中:

fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

这允许我下拉拉取请求差异,但是当我检查它时,它实际上创建了一个具有相同名称的分支。有什么方法可以让我推送pr/2并让它真正进入拉取请求,而不是去一个名为的新分支pr/2

4

4 回答 4

38

拉取请求只是合并某个分支的请求。这意味着在拉取请求打开后对分支所做的提交将包含在最终的合并中。

如果您有权访问拉取请求要求合并的分支,则可以提交到该分支,拉取请求将随着更改而更新。

例子:

pull/3 请求合并hotfixmaster

git fetch
git checkout hotfix
git pull origin hotfix

做出改变

git add .
git commit -m "changes!"
git push origin hotfix

现在您的提交将显示在拉取请求中。

于 2013-04-18T16:10:19.800 回答
38

这是 GitHub 对拉取请求的“通过命令行合并”说明(我很正派,另一个人是 ospr):

第 1 步:从您的项目存储库中,签出一个新分支并测试更改。

git checkout -b ospr-image-rendering master
git pull https://github.com/ospr/FDWaveformView.git image-rendering

第 2 步:在 GitHub 上合并更改和更新。

git checkout master
git merge --no-ff ospr-image-rendering
git push origin master

这是将您的更改发送回上游(?)到 PR 发起者的附加步骤。

git push https://github.com/ospr/FDWaveformView.git ospr-image-rendering:image-rendering
于 2017-04-27T17:26:09.067 回答
13

好问题。但如果你可以的话,我会感到惊讶:

$ cat .git/refs/pull/upstream/839 
f8a9f492098e154b4a8258a941af47c9ca017ada

即使您可以以某种方式将引用更改为您喜欢的内容,github 也有您无法轻易更改的其他元数据。所以更好地推送到分支 pull 是从创建的。

$ git push git@github.com:owner/repo.git HEAD:target-branch

请参阅 github 命令行包装器以更轻松地从命令行进行 github 交互: https ://hub.github.com/

总结:如果你推送到 PR 所基于的分支/分支,你可以推送到现有的拉取请求。这通常取决于 repo 设置。

git push git@github.com:username/repo-name.git localbranchname:remotebranchname

or if you have the fork added as a `remote` in your local repo, then:

git push 远程名称本地分支名称:远程分支名称

于 2014-05-13T20:12:22.997 回答
1

如果您尝试将更改合并到您签出的 PR,GitHub 桌面客户端将创建另一个拉取请求 (PR),其中包括原始 PR 和您的更改。

我在我的主分支上做了这个,但大概你可以创建另一个分支,然后为拉取请求创建一个拉取请求。尽管这些花哨的 Git GUI 对我来说都是神奇的。

于 2016-07-08T05:34:01.550 回答