Git詳解 三( 多人協同開發 ,程式碼衝突)
阿新 • • 發佈:2019-01-13
多人協同開發
1.程式碼編輯介面介紹:此處使用gedit做演示
- 程式碼編輯介面左邊為模擬經理的操作
- 程式碼編輯介面右邊為模擬張三的操作
2.模擬張三先編輯login.py檔案程式碼
- 進入張三本地倉庫:cd Desktop/zhangsan/test007
- 編輯程式碼:num1 = 10
- 本地倉庫記錄版本:git commit -am ‘第一個變數’
- 推送到遠端倉庫:git push
3.模擬經理後編輯login.py檔案程式碼
- 進入經理本地倉庫:cd Desktop/manager/test007/
- 經理同步伺服器程式碼:git pull
- 編輯程式碼:num2 = 20
- 本地倉庫記錄版本:git commit -am ‘第二個變數’
- 推送到遠端倉庫:git push
4.模擬張三同步伺服器程式碼
- 本次可以把num2同步到張三的本地倉庫
5.按照以上2-3-4步驟迴圈操作,即可實現基本的協同開發
6.總結: - 要使用git命令操作倉庫,需要進入到倉庫內部
- 要同步伺服器程式碼就執行:git pull
- 本地倉庫記錄版本就執行:git commit -am ‘版本描述’
- 推送程式碼到伺服器就執行:git push
- 編輯程式碼前要先pull,編輯完再commit,最後推送是push
程式碼衝突
- 提示:多人協同開發時,避免不了會出現程式碼衝突的情況
- 原因:多人同時修改了同一個檔案
- 危害:會影響正常的開發進度
- 注意:一旦出現程式碼衝突,必須先解決再做後續開發
程式碼衝突演練
1.張三先編輯login.py檔案程式碼
- 進入張三本地倉庫:cd Desktop/zhangsan/test007
- 拉取伺服器最新程式碼:git pull
- 編輯程式碼:num3 = 30
- 本地倉庫記錄版本:git commit -am ‘第三個變數’
- 推送到伺服器倉庫:git push
- 張三本地倉庫和遠端倉庫程式碼如下:
2.經理後編輯login.py檔案程式碼 - 進入經理本地倉庫:cd Desktop/manager/test007/
- 編輯程式碼:num3 = 300
- 本地倉庫記錄版本:git commit -am ‘第三個變數’
- 推送到伺服器倉庫:git push
- 以上操作會出現程式碼衝突
提示需要先pull
提示衝突檔案
衝突程式碼表現
3.解決衝突 - 原則:誰衝突誰解決,並且一定要協商解決
- 方案:保留所有程式碼 或者 保留某一人程式碼
- 解決完衝突程式碼後,依然需要add、commit、push
提示:如果張三執行pull沒有影響,就算真正解決了衝突程式碼
補充:
容易衝突的操作方式 - 多個人同時操作了同一個檔案
- 一個人一直寫不提交
- 修改之前不更新最新程式碼
- 提交之前不更新最新程式碼
- 擅自修改同事程式碼
減少衝突的操作方式 - 養成良好的操作習慣,先pull在修改,修改完立即commit和push
- 一定要確保自己正在修改的檔案是最新版本的
- 各自開發各自的模組
- 如果要修改公共檔案,一定要先確認有沒有人正在修改
- 下班前一定要提交程式碼,上班第一件事拉取最新程式碼
- 一定不要擅自修改同事的程式碼