---
# System prepended metadata

title: Git
tags: [Development]

---

Git
===
版本控制流程
## branch 命名
開發的分支命名法   task/{Jira Task單號}-簡易描述 
範例：task/csst-32-project-init
謹記分支命名都以小寫，切勿使用大寫
發 merge request(pull request) 的時候 title 請輸入分支名稱刪掉前面的 task 部分  
範例：csst-32-project-init

## 操作流程
1. 分支命名task/{Jira單號}/簡單描述，分支命名都**小寫**
2. 開發
3. 完成後，rebase開發主分支
4. 發Merge Request
![](https://i.imgur.com/D8ef8RB.png)
5. 確認conflict解決
6. 將對應Merge Request連結貼到對應Jira單上
7. 通知reviewer

## Code合併方法
- rebase(recommend)
接枝方法，將目前分支接到指定分支開頭，接完後需要force push，commit記錄不會照正常時序，但線圖會比較好看

- pull
拉主分支的內容後，解決衝突，推上去會有一筆合併的記錄

## Commit message規範
### 組成
Type+' '+':'+' '+info(冒號左右邊要夾空白)
### Type類型
- feat: 新增/修改功能 (feature)。
- fix: 修補 bug (bug fix)。
- docs: 文件 (documentation)。
- style: 格式 (不影響程式碼運行的變動 white-space, formatting, missing semi colons, etc)。
- refactor: 重構 (既不是新增功能，也不是修補 bug 的程式碼變動)。
- perf: 改善效能 (A code change that improves performance)。
- test: 增加測試 (when adding missing tests)。
- chore: 建構程序或輔助工具的變動 (maintain)。
- revert: 撤銷回覆先前的 commit 例如：revert: type(scope): subject (回覆版本：xxxx)。
### 限制
- 別超過30個字元，簡單易懂
## Review注意事項
Code
* 不正確斷行

Jira
* 單子沒拉到正確狀態
* 單子中沒截圖
###### tags: `Development`
