假设您有 3 个拉取请求 A、B、C,它们位于三个分支 bA、bB、bC 上。你的主要分支是master。
首先将他的所有分支都放到您的本地仓库而不合并它。
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
这里。这是一本简单的书,它向您展示了您在日常工作中使用 git 所需的一切,相信我,一旦您使用了 git bash,您会发现所有这些 git GUI 都令人沮丧(除了查看日志,我使用 gitk 来查看)并分析日志)
最后提示:
一种很好的记忆方式git merge
,git rebase
就像
Merge 正在将另一个分支合并到您当前的分支(当然您可以命名两个分支,但默认语法是将分支合并到您当前的分支)
所以你应该总是切换到主分支并合并其他分支
git checkout master
git merge their-branch --no-ff
或者
git merge their-branch
并且 rebase 正在将您当前的分支重新定位到另一个分支(通常是主分支)
git checkout feature-branch
git rebase master