将拉取请求合并在一起

时间:2013-01-18 02:11:53

标签: git github pull-request

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

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

1 个答案:

答案 0 :(得分:13)

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

首先将所有分支机构放到您当地的仓库而不合并它。 git fetch his-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合并到主分支

即可

您应该先切换到主分支。 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-git here。这是一本简单的书,在你的日常工作中用git向你展示你需要的一切,相信我,一旦你习惯了git bash,你会发现所有这些git GUI都很沮丧(除了查看日志,我用gitk来查看并分析日志)

最后提示:

记住git mergegit rebase的好方法就像

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

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

git checkout master

git merge their-branch --no-ff 要么 git merge their-branch

而rebase正在重新定位你当前的分支 ON 另一个分支(通常是主分支)

git checkout feature-branch

git rebase master

相关问题