2011-11-24 48 views
5

我有一个Git树,看起来像下面这样:Git的变基承诺选择

enter image description here

因为我们使用的审查工具,我们挑樱桃的变化,而不是将它们合并。这给我们留下了一些逻辑上的重复,然后我们只删除其分支。例如,在dev中可以看到ssl_tests“修改:更改名称......”下面的更改。

现在,也许这是我对樱桃挑选缺乏理解,但这些提交有不同的哈希值,所以是不同的提交对不对?尽管它们在逻辑上是相同的。但是,当我将ssl_tests转换到dev时,git设法弄清楚那些樱桃挑选的提交是上游的,然后仅从ssl_tests提交“New Feature:Unit tests ...”提交。

按照惯例,使用git,这太好了!这正是我想要的!我的问题是,git如何弄清楚,如果它们具有不同的哈希值,则不需要重新设置其他提交。

谢谢! Stephen

+0

关于在Git中合并魔法的好贴子是[如何和/或为什么合并在Git中比在SVN中更好?](http://stackoverflow.com/q/2471606/11343) – CharlesB

回答

5

Git在这里看到的不仅仅是SHA1。它实际上正在考虑提交的内容。它看到应用提交而不应用提交所产生的树是相同的;也就是说,如果应用于新基础,提交将为空。因此,rebase足够聪明,知道它不需要费心费力,包括那些提交。