[英]Merge a Git fork without changing master branch
我的最新分支是master (提交 M)。 我必须从旧提交(提交 O1)创建旧分支并在旧提交(提交 O3)上进行一些提交。 现在,我想在master上合并old以保存它,但我想保留master上的最后一次提交(提交 M)。
我怎样才能做到这一点?
对此有两个答案:
有了这个观点:如果你引入了一些将master
和old
合并在一起的东西,你不能拥有与master
上的当前提交相同的 hash ,你将始终创建一个新的提交 object 。
考虑到这一点:您可以创建一个合并提交(一个将有两个父母:您当前的master
和old
),但它的内容与您当前的master
完全相同。
实际上有一个git merge
选项可以做到这一点:
# from branch 'master' :
git checkout master
# create a merge commit, but ignore all changes that come from 'old' :
git merge -s ours old
这是内置合并策略列表的链接,这是关于ours
的部分:
我们的
这解决了任意数量的头,但合并的结果树始终是当前分支头的树,有效地忽略了所有其他分支的所有更改。 它旨在用于取代分支的旧开发历史。 请注意,这与递归合并策略的
-Xours
选项不同。
示例部分包含:
- 使用
ours
的合并策略将obsolete
的分支合并到当前分支中:$ git merge -s ours obsolete
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.