## git 日常開發使用建議:
#### 日常指令
* 保持代碼提交頻率,一天提交(`git commit` 、`git push`)2~3次以上(**防止代碼丟失**);
* `git commit`后應該即時 使用`git push`指令;(**多人維護的分支,太多代碼留在本地倉庫會生成多余的沖突跟commit**)
* git 控制臺窗口(windows->git Bash, mac -> 終端)與 可視化工具(windows->TortoiseGit, mac -> sourceTree) 結合使用;提交代碼、更新代碼、回退代碼使用控制臺窗口輸入指令完成, 解決沖突、檢查代碼修改記錄、回退個別文件(文件較多時)使用可視化工具;(**指令操作常用操作效率高,可視化工具看代碼更舒服**)
#### 分支操作
* 多人維護的分支,經常使用`git pull`指令, 避免不必要沖突。(**建議`git commit`前使用`git pull`**)
* 切換分支后第一件事,更新當前分支代碼`git pull`(本地分支沒綁定線上分支:`git pull origin xxx`);切換分支無論是將其他分支代碼合并過來還是在當前分支繼續開發, 提前`git pull`可以減少不必要的合并commit;
* 上線流程完成:應刪除本地分支及遠程分支(git lab分支): `git branch -D xxxx`, 上線完成意味著當前xxx分支代碼已經合并到線上分支(master)以及開發分支(develop), 該分支后續功能的改動(bug修復或代碼擴展)完全可以在master新開分支完成;(**否則可能遺忘刪除,導致遠程分支原來越多**)
* 遠程分支更新了分支(如 git lab上基于master新開了分支、刪除了分支、修改了分支名),本地查看遠程分支信息時需要手動更新, 在`git branch -a`前記得更新線上分支信息:`git pull -p`;(**`git branch -a`指令容易讀取到本地緩存信息**)
* 切換分支如果有沖突, 而沖突文件自己沒改動,首先聯系沖突文件最近維護者;
* 當前分支代碼進行中, 需要切換到其他分支操作例如線上緊急bug修復, 可以使用`git stash`;
* 線上小改動可以不用遠程創建分支,直接基于本地的線上分支:切換到master分支并更新最新代碼`git pull`, 開新分支:'git checkout -b xxx-fix', 修改完成合并到線上分支(master)跟開發分支(develop)即可:`git merge xxx-fix`;
#### 提交注釋規范
* 用于說明 commit 的類別,只允許使用下面7個標識(type)。
* feat:新功能(feature)
* fix:修補bug
* docs:文檔(documentation)
* style: 格式(不影響代碼運行的變動)
* refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
* test:增加測試
* chore:構建過程或輔助工具的變動
* 例如: 本次提交修改了文檔: `git commit -m "docs: update git_rm.md"`