有人向我的GitHub存储库提交了一组拉取请求。不幸的是,他们分别为每个文件提交了多个拉取请求,而不是一次性提交所有文件的拉取请求。
在请求他将它们合并为一个后,由于没有得到任何回应,我现在正在尝试在Git Bash中自己将这些拉取请求合并在一起,但没有什么进展。我很喜欢使用GitHub程序中的合并按钮和提交功能,但更深入地了解git shell就少了。如果有人能够介绍一下如何将这些拉取请求合并在一起(它们中没有任何冲突),那将不胜感激。
有人向我的GitHub存储库提交了一组拉取请求。不幸的是,他们分别为每个文件提交了多个拉取请求,而不是一次性提交所有文件的拉取请求。
在请求他将它们合并为一个后,由于没有得到任何回应,我现在正在尝试在Git Bash中自己将这些拉取请求合并在一起,但没有什么进展。我很喜欢使用GitHub程序中的合并按钮和提交功能,但更深入地了解git shell就少了。如果有人能够介绍一下如何将这些拉取请求合并在一起(它们中没有任何冲突),那将不胜感激。
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 并切换到该分支。git merge bA
git merge bB
git merge bC
如果有冲突,则应解决它(手动或使用合并工具),但由于你说没有冲突,因此我们认为bA、bB 和 bC现在都在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
的好方法是:
合并是将另一个分支合并到您当前的分支(当然,您可以命名两个分支,但默认语法是将分支合并到您当前的分支)
所以你应该总是切换到主分支并合并其他分支
git checkout master
git merge their-branch --no-ff
或 git merge their-branch
而rebase则是在另一个分支(通常是主分支)上重新定义您当前的分支
git checkout feature-branch
git rebase master
patch-11
patch-12
patch-13
patch-14
,你可以获取它们并将其合并到你自己新创建的分支中,然后再将该分支合并到主分支。如果你只想在你的分支上有一个单独的提交,你可以尝试查看交互式变基,即git rebase -i
。 - shengypro-git
,之后你就会知道在日常使用git(bash)时所需的一切。 - shengy