2010-05-07 28 views
13

我有一个仓库,其中'主'正朝着某个方向前进,而第二个分支'foo'将在两个提交之间发散,然后追踪所有后续对'主'的更改。这当然是全部的选择。Subversion有 - 只为合并记录,我怎么在Git中做同样的事情?

在Subversion中,即使未提交实际更改,您也可以执行仅记录合并以将事件标记为“合并已发生”。即,这改变了附属于目标分支中的目录的属性中的合并跟踪号码。

我曾与..播放

混帐合并--no提交主

...的东西我可以能够与之前我做的承诺鼓捣,但对于目标分支的部分改变(重命名后面跟着删除),这是一团糟。

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

  • 保罗

回答

12

这是你在找什么?

git merge --strategy=ours master 

我们

这解决任何数量的头,但由此产生的合并的树始终是当前分支头,有效地忽略来自所有其他分支的所有更改。它是用来取代侧枝的旧发展历史。

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

但你真的想这样做吗?有什么理由让你不能让分支实际上发生分歧(没有发生合并),然后再合并?

+2

P.S.我发誓,这是我上周第三次提到'--strategy = ours'。我想知道为什么每个人突然需要扔掉历史... – Cascabel 2010-05-07 05:02:15

+0

我正在改变分支上的数据库配置文件,分支点后,并不想合并它回到主。后来在分支上的错误修复,但我确实想合并回主。这将允许,没有樱桃选择单独的修复提交。 – 2013-01-20 16:57:11

+0

虽然这样做,但我发现这个数据库信息真的属于环境变量,就像在十二因子应用程序中一样。 – 2013-01-20 17:11:17

0

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

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),我们需要让示例非常容易遵循。在此“交易者”示例之前,JBehave vanilla + Guice变体+ SpringFramework变体+ PicoContainer变体都在同一个源目录中。现在,四个分支可以说明“交易者”示例的最典型表示。

+0

对不起,但链接已损坏 – 2015-08-21 13:41:42

相关问题