作者:張東宇 時間: 2020/7/9
如果你只對不會離開你電腦的提交執(zhí)行變基同廉,那就不會有事情汽久。
你開始工作的起點,克隆下面的倉庫挂脑。
遠程倉庫的初始狀態(tài)
克隆到本地之后藕漱,你進行了一些修改創(chuàng)建了C3 和 C4。
創(chuàng)建C3 和 C4
現(xiàn)在你對代碼滿意準備合并后提交崭闲,同時肋联,你想讓你的遠程倉庫代碼保持一條直線,看起來更美觀刁俭。
其實我心目中給變基操作有一個更接地氣的翻譯橄仍,嫁接:把某些分支的一部分或全部嫁接到另外一條分支上。達到精簡分支結構牍戚,或是保留有用的代碼侮繁,移除無效代碼的目的。
把exeriment分支的C4 變基到master 分支上
如果只是對像這樣完完全全的本地生長出來的分支進行變基合并如孝,不會翻車宪哩。
如果你對已經(jīng)推送至共用倉庫的提交上執(zhí)行變基命令,并因此丟失了一些別人開發(fā)所基于的提交第晰,那你就有大麻煩了锁孟,你的同事也會因此鄙視你
愉快的一天開始了,我是你的同事但荤,你同我一起開始工作罗岖,一起克隆代碼。
初始的遠程倉庫
現(xiàn)在是下午三點了腹躁,你了看看本地代碼桑包。
你的代碼
又看了看遠程代碼倉庫,發(fā)現(xiàn)張某某已經(jīng)提交了一些代碼纺非。
遠程倉庫
嗯哼哑了,此時此刻你決定先合并張某某的代碼, 你git pull烧颖,然后又進入到了愉快的工作之中...
現(xiàn)在一切還正常
到了三點半張某某粗來搞事情了弱左,他感覺自己上次提交沒有用變基心里不爽,使用變基合并之后強制推送到了遠程倉庫。
此時遠程倉庫發(fā)生了改變炕淮,而你的代碼的一部分是基于改變前的遠程倉庫的拆火。
此時遠程倉庫發(fā)生了改變
現(xiàn)在是下午四點半了,你準備再pull一次后push代碼下班班。
image.png
此時此刻你發(fā)現(xiàn)多出來一個C4‘们镜,而且C4' 又和C7 做了一次合并币叹,出現(xiàn)了C8...
如果此時此刻你直接向遠程倉庫推,遠程倉庫就會變成和你這樣一樣亂七八糟模狭。此時此刻颈抚,你想的第一件事肯定是鄙視張某某。
如果你對已經(jīng)推送過的提交執(zhí)行變基嚼鹉,但別人沒有基于它的提交贩汉,那么也不會有事。
emmm 這句話我糾結了很久锚赤,其實是個非常簡單的情況
如果陳某某在張某某第二次push之后合并代碼,就躲過了一劫匹舞。
張某某把舊的代碼結構改變了,破壞了采用先前代碼結構的開發(fā)者代碼結構的完整线脚,如果你合并了他舊的代碼結構策菜,就會無辜中槍,如果你合并的是最新的代碼結構酒贬,對你沒什么影響又憨。