有一種場景是經(jīng)常發(fā)生的。

大家都基于develop拉出分支進行并行開發(fā),這里的分支可能是多到數(shù)十個。然后彼此在進行自己的邏輯編寫,時間可能需要幾天或者幾周。在這期間你可能需要時不時的需要pull下遠程develop分支上的同事的提交。這是個好的習(xí)慣,這樣下去就可以避免你在一個無用的代碼上進行長期的開發(fā),回頭來看這些代碼不是新的代碼。甚至是會面臨很多沖突需要解決,而這個時候你可能還需要對沖突的部分代碼進行測試回歸,這就很麻煩了。

那么我們來看一下你在pull時候需要習(xí)慣性的加上—rebase參數(shù),這樣可以避免很多問題。--rebase的本意是想讓事情的發(fā)展看起來很連續(xù)和優(yōu)美,而不是多出很多無用的merge commit 。

你在有些時候pull代碼的時候會有這樣的一個提示:

1

這個時候你是習(xí)慣性的,”esc :wq“,直接默認commit注釋。然后你的commit log就多了一筆很不好看的log。

2

如果你不懂的在最后release的時候合并掉這些無意義的commit,最后你的release分支就會被你搞的很丑陋。(合并commit請參考:聊下git merge –squash)

這個問題的出現(xiàn)是正常的,我們來看下為什么會出現(xiàn)這個問題。正常情況下的分支commit路線:

3

當(dāng)前develop分支上有三個commit。現(xiàn)在我們兩個項目開始啟動