2011-11-24 49 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足夠聰明,知道它不需要費心費力,包括那些提交。