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

时间:2010-05-07 04:48:08

标签: git merge

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

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

我玩过..

  

git merge --no-commit master

..作为我在提交之前可以修补的东西,但是对于有问题的部分更改(重命名后跟删除),它会使目标分支陷入混乱。

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

3 个答案:

答案 0 :(得分:14)

这是你要找的吗?

git merge --strategy=ours master
  

我们

     

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

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

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

答案 1 :(得分:0)

保罗,git处理重命名后跟删除(相对于svn)轻松。它跟踪的内容不是文件名。在svn中,这会很痛苦,你在使用git时遇到了什么问题?

答案 2 :(得分:0)

jefromi钉了它。这是真实的东西 - http://github.com/jbehave/jbehave-core/blob/master/examples/trader/src/main/java/org/jbehave/examples/trader/TraderStory.java(使用开关分支并查看第65行)。

这不是关于“抛弃历史”,而是更多关于使用Git来处理来自单一基础的不同变化。为了让人们采用JBehave(IMO),我们需要让实例很容易理解。在此'Trader'示例之前,JBehave vanilla +一个Guice变体+一个SpringFramework变体+一个PicoContainer变体都在同一个源目录中。现在,四个分支可以说明“交易者”示例的大多数规范表示。