【问题标题】:How do I push to a pull request on github?如何推送到 github 上的拉取请求?
【发布时间】:2013-03-09 23:00:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: git github pull-request


    【解决方案1】:

    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
    

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

    【讨论】:

    【解决方案2】:

    这里是 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
    

    【讨论】:

    • 谢谢,正是我想要的。请注意,您可以跳过/推迟第 2 步(合并到您的主节点中),只需在第三步中将本地更改直接推送到 PR。一般形式为git push <pr-repo.git> <your-local-branch-name>:<pr-branch-name>。
    • 这应该是答案。
    【解决方案3】:

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

    $ 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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-08-29
        • 1970-01-01
        • 1970-01-01
        • 2012-01-11
        • 2017-02-02
        • 1970-01-01
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多