Git分支開發規範
- 1. 初衷
- 2. 分支管理
- 3. [本地分支和遠程分支建立追蹤關係的三種方式](https://blog.csdn.net/qq_42780289/article/details/97762596)
- 4. [git如何合併遠程2個分支](https://www.cnblogs.com/personblog/p/11240422.html)
- 5. [ git checkout 可替換命令 git switch 和 git restore](https://www.cnblogs.com/tinywan/p/12344267.html)
- 6. 日誌規範
- 6.1. 編寫良好的Commit messages可以達到3個重要的目的
- 6.2. [Commit message 的格式說明](https://blog.csdn.net/alnorthword/article/details/88537561)
- 7. 依託github創建多分支項目
- 8. [git stash詳解](https://blog.csdn.net/stone_yw/article/details/80795669)
- 9.[Git常用命令及方法大全](https://www.cnblogs.com/miracle77hp/articles/11163532.html)
- 10. 寄語:無論從事什麼行業,只要做好兩件事就夠了,一個是你的專業、一個是你的人品,專業決定了你的存在,人品決定了你的人脈,剩下的就是堅持,用善良和真誠贏取更多的信任
1. 初衷
- Git 是目前最流行的源代碼管理工具。 爲規範開發,保持代碼提交記錄以及 git 分支結構清晰,方便後續維護,現規範 git 的相關操作。
2. 分支管理
2.1. 分支命名
-
master 分支
- master 爲主分支,也是用於部署生產環境的分支,確保master分支穩定性
- master 分支一般由
develop
以及hotfix
分支合併,任何時間都不能直接修改代碼
-
develop 分支
- develop 爲開發分支,始終保持最新完成以及bug修復後的代碼
- 一般開發的新功能時,feature分支都是基於develop分支下創建的
-
feature 分支
- 開發新功能時,以develop爲基礎創建feature分支
- 分支命名: feature/ 開頭的爲特性分支, 命名規則: feature/user_module、 feature/cart_module
-
release分支
- release 爲預上線分支,發佈提測階段,以release分支代碼爲基準提測
- 當有一組feature開發完成,首先會合併到develop分支,進入提測時,會創建release分支。
- 如果測試過程中若存在bug需要修復,則直接由開發者在release分支修復並提交。
- 當測試完成之後,合併release分支到master和develop分支,此時master爲最新代碼,用作上線。
-
hotfix 分支
- 分支命名: hotfix/ 開頭的爲修復分支,它的命名規則與 feature 分支類似
- 線上出現緊急問題時,需要及時修復,以master分支爲基線,創建hotfix分支,修復完成後,需要合併到master分支和develop分支
2.2. 常見任務
-
增加新功能
(dev)$: git checkout -b feature/xxx # 從dev建立特性分支 (feature/xxx)$: blabla # 開發 (feature/xxx)$: git add xxx (feature/xxx)$: git commit -m 'commit comment' (dev)$: git merge feature/xxx --no-ff # 把特性分支合併到dev
-
修復緊急bug
(master)$: git checkout -b hotfix/xxx # 從master建立hotfix分支 (hotfix/xxx)$: blabla # 開發 (hotfix/xxx)$: git add xxx (hotfix/xxx)$: git commit -m 'commit comment' (master)$: git merge hotfix/xxx --no-ff # 把hotfix分支合併到master,並上線到生產環境 (dev)$: git merge hotfix/xxx --no-ff # 把hotfix分支合併到dev,同步代碼
-
測試環境代碼
(release)$: git merge dev --no-ff # 把dev分支合併到release,然後在測試環境拉取並測試
-
生產環境上線
(master)$: git merge testing --no-ff # 把testing測試好的代碼合併到master,運維人員操作 (master)$: git tag -a v0.1 -m '部署包版本名' #給版本命名,打Tag
3. 本地分支和遠程分支建立追蹤關係的三種方式
4. git如何合併遠程2個分支
5. git checkout 可替換命令 git switch 和 git restore
6. 日誌規範
在一個團隊協作的項目中,開發人員需要經常提交一些代碼去修復bug或者實現新的feature。而項目中的文件和實現什麼功能、解決什麼問題都會漸漸淡忘,最後需要浪費時間去閱讀代碼。但是好的日誌規範commit messages編寫有幫助到我們,它也反映了一個開發人員是否是良好的協作者。
6.1. 編寫良好的Commit messages可以達到3個重要的目的
- 加快review的流程
- 幫助我們編寫良好的版本發佈日誌
- 讓之後的維護者瞭解代碼裏出現特定變化和feature被添加的原因
6.2. Commit message 的格式說明
- 目前,社區有多種 Commit message 的寫法規範。來自Angular 規範是目前使用最廣的寫法,比較合理和系統化
7. 依託github創建多分支項目
7.1. master部分操作
- 創建遠程倉庫
- 創建與遠程庫一樣的項目文件夾
mkdir data_structure_repository
,初始化本地倉庫git init
,配置用戶名和郵箱 - 關聯遠程庫
git remote add origin [email protected]:fanjianhai/data_structure_repository.git
- 檢出本地master分支
git checkout master
7.2. slave部分操作
- 克隆項目(不需要創建文件夾,直接克隆就可以)
git clone [email protected]:fanjianhai/data_structure_repository.git
- 修改配置