2014-02-28 98 views
2

我想在項目中做一些CR。 bitbucket允許我一次檢查一個提交。所以我想將提交合併爲一個提交(壓扁 - >Collapsing a Group of Commits into One on Git),然後在一次提交中查看所有更改。替代重新編寫代碼審查?

但是,當擠壓我失去了所有的提交歷史,我真的不想要它。

有沒有其他的選擇(我知道我總是可以克隆和重新綁定)?另外,一個簡單的CR工具(不是Web平臺)就好了。

回答

1

如果進行審查的目的是限制一個承諾,你想壁球審查提交的清單,你應該分支,然後壁球(通過重訂),審查在一個單獨的專用分支。這將是最簡單的方法,並且您不會更改大概已經被推送和發佈的主線歷史。


但我也想解決您的評論,

然而,擠壓時,我失去所有的提交歷史,我真的不希望它。

一般來說,你不能用git失去提交歷史。 rebase會發生什麼情況,歷史會分裂並且您的分支提示會指向新的分支,但您的舊提交仍然存在 - 只是它們無法通過分支名稱方便地訪問,並且必須通過一個提交哈希。

示例。

比方說,你想壁球B,C,d,E爲審查的目的,作爲一個單一的提交。

   A--B--C--D--E topic 
      /
H---I---F---G master 

墊底完成和B,C,d,E被壓扁進入S後,原來的提交是可用的,但沒有與其相關聯的分支:

   B--C--D--E 
      /
       A--S topic 
      /
H---I---F---G master 

所以,如果你檢出E你將在一個分離的頭狀態,但你完全可以讓topic點回E

git update-ref refs/heads/topic E 

,樹看起來就像這樣:

   B--C--D--E topic 
      /
       A--S 
      /
H---I---F---G master 

對於上面的你要記住的E提交哈希能夠引用它在主題分支底墊後。這有點不方便,但是您可以將git標籤應用於E,然後將git reset應用於標籤。