## 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"`