一个强迫症的Git 选择
选择
1,经常性的commit or 干净的历史
在本地(私有)的开发分支中,选择经常性的commit,以便于实时记录修改,回退等操作。eg.develop,feature...
实现方式: commit
在发布(公共)的分支中,选择干净的历史。eg.master,release...
实现方式:(1) merge --squash
(2) tag + merge --no-ff
2,track 完整的项目(包含图片等非代码文件) or 经gitigore剔除后的纯净代码项目
gitignore 是在本地用的,用于部分更新的配置文件。不适合与服务端共享!
原则上,尽量少添加gitigore条目
gitigore添加规则:
1,编译环境配置路径
2,编译后的程序或库文件
3,剔除随着业务增长占用大量空间的路径,例如web项目中的upload
备注
1,tag依托于分支而存在,用tag标记版本。
2,通过A分支分出B分支,又通过merge --no-ff 合并到A分支,则B分支中的历史commit,仍会出现在A的历史commit中。
3,判断是否使用merge --squash选项最根本的标准是,待合并分支上的历史是否有意义。