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

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

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

你在有些時(shí)候pull代碼的時(shí)候會(huì)有這樣的一個(gè)提示:

1

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

2

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

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

3

當(dāng)前develop分支上有三個(gè)commit?,F(xiàn)在我們兩個(gè)項(xiàng)目開(kāi)始啟動(dòng)