【发布时间】:2013-03-09 23:00:09
【问题描述】:
我已将此添加到我的 .git/config 文件中:
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
这允许我下拉拉取请求差异,但是当我检查它时,它实际上创建了一个具有相同名称的分支。有什么办法让我推送到pr/2 并让它实际转到拉取请求而不是转到一个名为pr/2 的新分支?
【问题讨论】:
标签: git github pull-request
我已将此添加到我的 .git/config 文件中:
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
这允许我下拉拉取请求差异,但是当我检查它时,它实际上创建了一个具有相同名称的分支。有什么办法让我推送到pr/2 并让它实际转到拉取请求而不是转到一个名为pr/2 的新分支?
【问题讨论】:
标签: git github pull-request
Pull Request 只是合并某个分支的请求。这意味着在拉取请求打开后对分支所做的提交将包含在最终的合并中。
如果您有权访问拉取请求要求合并的分支,则可以提交到该分支,拉取请求将随着更改而更新。
例子:
pull/3 请求将hotfix 合并到master
git fetch
git checkout hotfix
git pull origin hotfix
做出改变
git add .
git commit -m "changes!"
git push origin hotfix
现在您的提交将显示在拉取请求中。
【讨论】:
这里是 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
【讨论】:
git push <pr-repo.git> <your-local-branch-name>:<pr-branch-name>。
好问题。但如果可以的话,我会感到惊讶:
$ cat .git/refs/pull/upstream/839
f8a9f492098e154b4a8258a941af47c9ca017ada
即使您可以以某种方式将引用更改为您喜欢的内容,github 也有其他您无法轻易更改的元数据。所以更好地推送到分支拉取创建自。
$ 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 remotename localbranchname:remotebranchname
【讨论】:
如果您尝试将更改合并到您签出的 PR,GitHub 桌面客户端将创建另一个拉取请求 (PR),其中包括原始 PR 和您的更改。
我在我的主分支上做了这个,但大概你可以创建另一个分支,然后为拉取请求创建一个拉取请求。虽然这些花哨的 Git GUI 对我来说都是神奇的。
【讨论】: