Subversion只有--record - 用于合并,我如何在Git中做同样的事情?

Pau*_*ant 15 git merge

我有一个repo,其中'master'朝着某个方向前进,而第二个分支'foo'将在几次提交时发散,然后跟踪之后对'master'的所有后续更改.这当然是选择.

在Subversion中,你可以做一个--record-only merge来标记"合并已经发生",即使没有提交实际的更改.即,这会更改附加到目标分支中目录的属性中的合并跟踪编号.

我玩过...

git merge --no-commit master

..在我提交之前,我可能会修补一些事情,但是对于部分有问题的更改(重命名后跟删除),它会让目标分支陷入混乱.

必须有一个更简单的方法..?

  • 保罗

Cas*_*bel 15

这是你在找什么?

git merge --strategy=ours master
Run Code Online (Sandbox Code Playgroud)

我们的

这会解析任意数量的头,但合并的结果树始终是当前分支头的树,实际上忽略了所有其他分支的所有更改.它旨在用于取代侧枝的旧发展历史.

这似乎是你要求的 - 它创建一个合并提交,实际上不会引入任何更改.

但你真的想这样做吗?是否有某些原因你不能让分支实际上分歧(没有合并发生)然后合并?

  • PS我发誓这是我上周第三次提到`--strategy = ours`.我想知道为什么每个人突然需要抛弃历史...... (2认同)
  • 我需要这样一个例子: - 在main工作的团队和DevBranch需要我构建一个功能 - 我构建了这个功能,将它合并到main和DevBranch中 - 后来,发现我构建的东西在没有其他东西的情况下巧妙地行为不端可以在DevBranch上使用 - 我需要从main更改我的更改,但我最终需要一个状态,以后可以将DevBranch合并到main中,然后我的功能将重新进入 - 解决方案:从最后一个"主"提交合并到创建DevB2 DevBranch.在DevB2上恢复我的功能,将(通常)合并到main中,并将--strategy = our合并到DevBranch中 (2认同)