創建兩個A跟B資料夾,模擬A和B兩位開發人員

開啟VSCode,新增hello.txt並輸入內容Hello!

查詢目前資料夾狀態
> git status
發現一個修改過的檔案hello.txt

加入目前資料夾內變更的檔案
> git add .

git儲存
> git commit -m "First commit"

確認查詢目前資料夾狀態
> git log
顯示一筆 commitID c0e4f1f1298bd46b4d4b58469b4f6af1e0b2f04d
HEAD指向 master分支

在git hub遠端建立一個新的repository,名稱為conflic-demo.
依照提示git remote add指令,加入遠端git hub,名稱為origin,網址為https://github.com/me1237guy/conflic-demo.git
> git remote add origin https://github.com/me1237guy/conflic-demo.git

接著,將本地端(A開發者)的git上傳
> git push -u origin master

檢查git hub,會發現一筆上傳紀錄

B開發者準備複製A使用者開發的資料

> git clone https://github.com/me1237guy/conflic-demo.git .

在B開發者下載git hub資料的同時,A開發者仍繼續修改hello.txt
M表示modified

開發者A修改hello.txt後檢查git 狀態
> git status
發現hello.txt有變動,因此將目前資料夾stage
> git add .
接著commit
>git commit -m " Modify hello.txt by User A"

準備push到git hub

A開發者上傳至git hub
兩筆上傳紀錄,但是目前B開發者並不曉得有最新的一筆,
B開發者仍然以A開發者上傳的第一版進行開發

目前為止,比較A和B本地端git的版本
A開發者: 有兩份紀錄

B開發者: 僅有一份紀錄

場景回到B開發者
B開發者修改hello.txt,
> git status

發現更動利用 git add加入更動檔案至stage
>git add .
儲存更動並標記為"Modify hello.txt by User B"
> git commit -m "Modify hello.txt by User B"
設定遠端repository為origin
> git remote add origin https://github.com/me1237guy/conflic-demo.git
B開發者想要上傳目前修改後的版本至git hub
>git push origin master

不意外,B開發者上傳時會發生衝突conflict訊息,原因很簡單因為A開發者在git hub上的版本與B開發者不一致所導致
所以B開發者得先從git hub更新一份目前A開發者上傳最新版本
> git pull
Auto merge failed B開發者會看到跳出衝突的提示

<<<< HEAD 表示本地端指向的版本及其內容
>>>>> 5f0b5 表示遠端的版本及其內容
在此保留B開發者的版本

修改後檢查一下狀態
>git status

解決衝突後,再次更新

在B開發者目前的版本紀錄,依序為Merge遠端的版本(B開發者已解決衝突)、Modify hello.txt by User B、Modify hello.txt by User A和First commit四個
解決完衝突接著準備再次從本地上傳至git hub

> git push origin master

B開發者上傳後,git hub的確顯示四筆儲存紀錄

點選時間圖案,可以進一步看到四個版本細節如下:

請先 登入 以發表留言。