【问题标题】:Merging pull requests together合并拉取请求
【发布时间】:2013-01-18 10:31:54
【问题描述】:

有人向我在 github 上的存储库提交了一组拉取请求。不幸的是,他们在多个拉取请求中完成了此操作(每个文件一个),而不是一次性提交所有文件的所有拉取请求。

在请求他将它们合并为一个之后 - 没有得到任何响应,我现在尝试在 Git Bash 中将这些拉取请求合并在一起 - 但运气不佳 - 我很高兴使用合并按钮并制作通过 Windows 上的 GitHub 程序提交,但仅此而已。我对 git shell 没有真正的了解 - 所以如果有人可以完成我如何将这些拉取请求合并在一起的过程(无论如何它们都不冲突),我将不胜感激。

【问题讨论】:

    标签: git github pull-request


    【解决方案1】:

    假设您有 3 个拉取请求 A、B、C,它们位于三个分支 bA、bB、bC 上。你的主分支是master。

    首先将他的所有分支都放到您的本地仓库中,而不要合并它。 git fetch his-repo

    所以现在你的 repo 可能有四个分支:master, bA, bB, bC

    我将从master创建一个名为f-merge-his-repo的分支

    git checkout master 这确保 f-merge-his-repo 从 master 分支出来。

    git checkout -b f-merge-his-repo 这将创建分支 f-merge-his-repo 并切换到它。

    所以现在你正在使用 f-merge-his-repo,使用以下命令:

    git merge bA

    git merge bB

    git merge bC

    如果有冲突你应该修复它(手动或使用合并工具),但正如你所说没有冲突,所以我们说bA bB and bC现在都在f-merge-his-repo

    然后,只需简单地将 f-merge-his-repo 合并到您的主分支中

    你应该先切换到 master 分支。 git checkout master

    然后合并 f-merge-his-repo git merge f-merge-his-repo

    或者如果您更喜欢非快进合并 git merge --no-ff f-merge-his-repo

    毕竟,删除这些分支。

    git branch -d bA

    git branch -d bB

    git branch -d bC

    git branch -d f-merge-his-repo

    你真的应该看看pro-githere。这是一本简单的书,它向您展示了您在日常工作中使用 git 所需要的一切,相信我,一旦您使用了 git bash,您会发现所有这些 git GUI 都令人沮丧(除了查看日志,我使用 gitk 来查看)并分析日志)

    最后提示:

    记住git mergegit rebase的好方法是

    Merge 正在合并另一个分支 TO 您当前的分支(当然您可以同时命名两个分支,但默认语法是将分支合并到您当前的分支)

    所以你应该总是切换到主分支并合并其他分支

    git checkout master

    git merge their-branch --no-ff 或者 git merge their-branch

    并且 rebase 正在重新设置您当前的分支 ON 另一个分支(通常是主分支)

    git checkout feature-branch

    git rebase master

    【讨论】:

    • 今晚下班回家之前我无法尝试这个 - 但看起来是个不错的答案!非常感谢。
    • 对,好吧,我找不到他做的任何分支。我唯一的假设是他必须一次编辑每个文件以创建拉取请求 - 而不是做分支。我已经尝试根据我所做的更多研究以及在阅读那本书之后挑选提交 - 我得到的只是fatal: bad object xxxxx 其中xxxxx 是提交号。除了手动完成之外还有什么想法吗?
    • 你的意思是他先修改了 a.c 并创建了一个 pull request,然后基于那个版本他修改了 b.c 并创建了另一个 pull request?
    • 不,我的意思是他编辑了 4 个单独的文件。而不是创建拉取请求。或者至少我找不到他试图合并的任何分支。如果有帮助的话,这里就是这 4 个拉取请求 github.com/wilsonge/shoutbox/pulls 。我想全部接受它们 - 但在一次合并中 - 如果需要/拥有更完整的日志等,我可以一次性撤销它们。
    • 很抱歉没有真正帮助你,但我强烈建议你花半天时间通读pro-git,之后你就会知道你在日常工作中使用 git(bash )。
    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多