最好不要把不同功能放在同一次commit,有以下理由:
1.方便以后查找功能对应的代码;
2.除了注释,commit备注也可以帮助理解代码,所以commit备注和代码最好能对应;
3.假如把A、B两个功能放在同一次commit,B突然不需要上了,很难把B的代码撤销。如果A、B在不同的commit,还可以用revert撤销B的commit。
commit信息可以加上固定前缀,用于表明本次提交的类型
[new] 新增功能
[fix] 修复bug
[imp] 优化功能
PS: imp是improve(改善)的缩写
假设有一个功能,计划本次版本上线,可不可以不新建分支,直接在dev分支开发?
不可以,因为存在一定概率,在发版日前不久,该功能突然不上了,这时候如果代码已经合到dev就会很麻烦。
除非是百分百确定要上线的功能,或者是修复缺陷等必上的内容,才可以在dev开发
git revert与git reset的区别
两者的作用都是撤销某个提交记录
区别一:
git revert commitId是撤销某一次commitId,git reset --hard commitId是撤销commitId以及该commitId之后的提交
区别二:
revert会保留原来的提交记录,同时产生一个新的提交记录来抵消原来的提交;
reset 是直接删掉提交记录
相对来说,revert更加安全,操作记录有迹可循,reset如果操作失误,要找回原来的记录就比较麻烦了
一个人一个分支,还是一个功能一个分支?
一个人同时开发多个功能时,需要一个功能一个分支,因为不同功能的上线日期不同。
一个人只开发一个功能时,按人或按功能建分支都可以。
git设置本地忽略必须保证git的远程仓库分支上没有这个要忽略的文件,如果远程分支上存在这个文件,本地再设置ignore将不起作用。
git处理冲突
“<<<<<<<HEAD” 与 “=======” 中间的是本地仓库的修改。
“=======” 与 “>>>>>>>” 中间的是远程仓库的修改。








网友评论