合併衝突 每天三分鐘玩轉Git(三)

2021-09-24 07:47:46 字數 2482 閱讀 2983

五四青年節快樂哦 ——程式設計三分鐘

我們多人合作提交**的時候,常常會出現兩個人同時改了某個**檔案,這個時候你一拉**就傻眼了!就連git自己也不知道應該儲存哪乙份檔案,在此時就需要乙個超級英雄出現拯救世界,他享有最高的決定權,而那個人就是你了。

git 版本控制,看這篇就夠了 (一)

git 版本控制,看這篇就夠了 (二)基礎篇

合併同乙個分支的衝突

通常這種情況就發生了我們拉遠端的**的時候發生的本地**與遠端同時修改了乙個地方,這個時候就需要決定保留哪部分**捨棄哪部分**。

為了產生乙個衝突,我在另乙個地方向遠端倉庫提交了**,更改share_file.txt檔案,加了一行內容tom add for merge

本地修改同乙個檔案加了一行pzqu add for merge,並提交到本地,這樣一來,本地和遠端倉庫的同乙個檔案就不一樣了,一會拉**一定會產生乙個衝突。效果如下:

一般rebase或pull衝突的時候,都會出現提示,然後git status會出現上圖圖示

這個時候不可以進行任何分支切換和commit操作,按照他提示進行處理

git status提示哪個檔案是都被修改的,both modified,然後使用編輯器修改該檔案,解決衝突

解決完成後,git add 新增該衝突檔案

git rebase --continue,並更新commit message,完成整個rebase流程

我們來看看這個衝突的檔案:

git用<<<<<<<*****==>>>>>>>標記出不同分支的內容,我們修改如下後儲存:

git addgit rebase --continue後完成rebase,效果如下,再push的遠端倉庫即可

合併不同分支的衝突

想像一下,要是我們只用主分支來寫**,在和同事開發不同功能的時候交叉提交到遠端的主線上,要是產品突然不要這個功能了,回退起來就非常的困難,不僅僅要去乙個乙個的找哪個提交是屬於這個功能,還要小心翼翼的處理一遍全部的衝突。

用分支就不會有這麼多事情,在自己的分支上幹活,等全部開發完成,再一次性的合併到主分支上,這樣我們既可從分支上知道乙個人的開發進度,又不影響大家幹活,是不是很 方便呢?

關於怎麼建立分支與切換分支見上一次推送,這裡只討論合併時產生的衝突的情況,我們已經基於master分支建立了乙個dev/pzqu分支

切換到master分支,加一行master add for merge並提交,檔案內容如下:

切換到dev/pzqu分支,向share_file.txt加入一行dev/pzqu add for merge並提交,現在share_file.txt內容如下:

現在兩個分支的同乙個檔案內容不一樣了,現在我們在dev/pzqu分支上進行合併:

上圖出現了乙個衝突,是我們意料之中的,修改share_file.txt檔案,解決此衝突:

衝突解決也提交了,看看我們現在的分支內容:

解決完衝突異常的舒適

上圖我們可以看到:

master分支比遠端origin/master分支多一次提交,dev/pzqu分支由於是基於origin/master分支,合併了master分支的提交和當前dev/pzqu分支的提交,超出本地master兩個提交,致此我們把master合併到dev/pzqu的操作就完成了。

通常我們開乙個新的開發分支是為了在自己的分支上寫**,方便提交也不會把主線弄亂。

現在我們用同樣的方法將dev/pzqu合併到master分支,然後把兩個分支都提交到遠端。

切換到master分支

合併dev/pzqumaster分支

master推到遠端倉庫

如果dev/pzqu要保留,就可以推送到遠端倉庫。

現在我們可以看到全部的分支都在一起了,強迫症都舒服了。

本文閱讀結束以後,我們學會了

處理遠端同步**過來以後和本地產生的衝突

學會使用自己的開發分支,並且處理不同分支之間的合併操作

ps: 衝突是乙個非常好的機制,方式兩個人沒溝通好都同時修復乙個bug獲取同時寫的某個功能,一發生衝突一下子就發現啦!

下回預告:

敬請期待哦~!

程式設計三分鐘,用最通俗易懂的方式聊技術

《每天感恩三分鐘》

每天感恩三分鐘 有位104歲的老太太耳聰目明,老而彌堅。有人向她請教長壽秘訣,老太太笑了 我有一帖靈丹妙藥,那就是每天化三分鐘時間感恩。她說,化一分鐘感恩父母 丈夫 兒女 鄰居和陌生人 一分鐘感恩大自然給予的種種關懷和體貼 一分鐘感恩每乙個祥和 溫暖和快樂的日子 感恩使她心裡永遠流淌著幸福的泉水,有...

三分鐘建立乙個小程式 每天三分鐘玩轉小程式 1

點選上方 程式設計三分鐘 馬上關注,每週1 3 5定時更新。好險,還有幾分鐘,差點沒有趕上周五的尾巴。這次帶來的是1.小程式開發前的準備,非常的簡單,讓我們花三分鐘建立乙個小程式!滑鼠放到小程式上 拉到最下面,出現前往註冊 這個時候你會收到一封郵件 gmail注意上網方式 點選郵件中的鏈結,郵箱啟用...

沉默三分鐘

網上見此真情之文,藉以自表 原文 http www.hecaitou.net p 3018 沉默三分鐘是心祭。那麼多年了,國旗終於為平民而降。那麼多天了,全民哀悼終於實現。與此同時,火炬停止傳遞,因為這不是乙個歡慶的時刻。很多年後回顧2008年,我 也許寧可它從日曆中消失。還沒有哪一年和今年一樣,才...