使用Git進行多人合作的經驗(重點)
1、多用用戶端,少用指令行,使用工具是為了提高效率,不是為了使用指令行而使用。
2、每次送出前,diff自己的代碼,也就是檢視都修改了哪裡,防止送出一些不必要的東西。
3、下班回家前,整理好自己的工作區
4、并行的項目,多用分支
5、遇到沖突,要搞明白沖突的原因,千萬不要随意丢棄别人的代碼
6、産品釋出後,記得打tag,友善将來拉分支修bug
版本管理工具的作用:
備份服務、記錄曆史版本、回退曆史版本、多端協作、團隊協作。
備份服務:類似U盤,雲盤,可以備份我們重要的資料(代碼)
記錄曆史版本:我們可以友善的檢視都修改了哪些代碼,有哪些曆史的版本,友善回退。
多端協作:可以在不同用戶端檢視,類似,雲盤可以在app上看,也可以在電腦上使用。
團隊協作:多人合作寫代碼時,使用git吧。
分支的建立與合并:
重點是了解使用場景
分支的建立場景:
最新release版本中有一個bug,最新的master環境已經在開發新功能。
如果在master修改,再釋出出去,就會把一些還沒有完成(測試好的)功能釋出出去了
是以需要建立一個分支,在這個分支裡面儲存的是 release版本的代碼,然後修改,釋出
合并的場景:
如果後續master已經開發完成,直接合并兩個分支到master中,master中存在的bug也就被修複了。
建立裡程碑:
裡程碑 = 穩定版本号.
裡程碑的含義是: 一個階段比較穩定的版本,正式送出釋出出去.提供zip下載下傳.
操作步驟:
1. 在github網站上.進入項目首頁.
2. 橫欄按鈕(commits, branches, release等),找到release按鈕.
3. 找到按鈕:draft a new release,點選進入下一頁面.
4. 填入版本号,以及說明資訊.
5. 完成後,點選publish release,将軟體釋出出去.
6. 這樣就完成裡程碑建立,同時會自動生成zip下載下傳連結.
Windows用戶端中版本沖突和回到過去都可視化,這裡不做過多介紹。
使用Linux的同學,可以看下下面的關于版本沖突和回到過去的指令:
Linux下版本沖突的解決:
假設同一個F檔案,被操作者A和B都修改了.
解決思路:
1. A先送出檔案F,正常送出,無沖突問題.
2. B送出檔案F時,報沖突.
3. B需要執行: git pull 操作,會自動将伺服器端最新檔案,合并到本地F.(該檔案F中,同時保留2個不同的修改點)
4. B執行: git status 操作,顯示沖突檔案資訊.
5. B執行: git diff 操作,顯示檔案F中的沖突點.
6. B執行: 用vi 打開 檔案F, 檢視到沖突處标記

手動删減,保留需要确認的部分.
7. 到這裡,B本機的檔案F已經在同步伺服器端最新的F基礎上,做了修改,變成”更加新的檔案F”(比伺服器端還新).
8. 這樣,再送出檔案F.就不存在沖突問題.剩下的操作,就是正常的送出步驟.
9. git add XXXX
10. git commit “xxxxyww”
11. git push
12. 輸入賬号名,密碼.
13. 這樣,就将”更加新的檔案F”上傳到伺服器端.解決沖突問題.
14. 這個沖突解決問題,實際上和其他版本管理工具,沒有啥本質差別.
15. 切換至A使用者,再pull才能保持與遠端一緻
回到過去
Linux中:
“git log” 檢視日志
退回以前版本:
在git log 中,選取某個要退回到的版本時間戳,在該檔案中,複制commit 後的一長串字元串ID
然後使用”git reset –hard 複制的字元串ID”
回到現在:
“git reflog”,顯示之前的所有送出的版本号
"git reset –hard 選取 pull前的ID(位于reflog的第一列)