git在实际中要注意的点
多人协作代码规范
提交代码需仔细review
编写的所有代码
提交测试前需按照测试用例充分自测
分支合并和冲突
在执行merge
时,多个分支对同一个文件的修改有重叠,会报CONFLICT
解决冲突:
1. Java
《Java核心技术 卷I》
《Java核心技术 卷II》
2. 代码质量
<<<<<<< HEAD
《图解设计模式》
《重构 改善既有代码的设计》
3. Linux
=======
3. Linux
《鸟哥的Linux私房菜 基础学习篇》
《鸟哥的Linux私房菜 服务器架设篇》
>>>>>>> book-linux
<<<<<<< HEAD
,=======
,>>>>>>> book-linux
便是冲突标记,从<<<<<<< HEAD
到=======
就是当前master
分支的内容,从=======
到>>>>>>> book-linux
就是book-linux
分支的内容。我们解决冲突,需要做的就是将冲突标记全部移除。
通常我们有3种方式。
- 选择两个中的一个。
- 自行选择两者的内容进行合并。
- 也可以把冲突的内容全部删掉,换上一个全新的内容。
之后再次add、commit、push
拉代码冲突
两个人同时在master分支提交,另一个人先提交,我在push的时候就会报错,此时我需要先将最新的master分支pull到本地,形成一个合并,将我的本地代码更新。有冲突的话,按照上面的方法处理。
使用pull会产生新的节点树,为了让节点树变得清爽,我们采用git rebase,这样就不会产生新的节点树了,而是直接更新。
回滚
git revert (相当于执行了删除+提交)
重置
git reset 节点回退到上个版本
总结
rebase
变基操作可以将多个提交或合并提交变成一个提交,让节点树更清爽。rever
撤销某一次提交记录。reset
将当前分支的最新提交移动到指定提交记录。
分支规范
master
,用于发布生产环境的分支,该分支上的代码必须是测试通过的代码,只接受来自于feature
和hotfix
的分支合并每次发布需要进行tag标记以便于出错时进行回滚。develop
,测试分支,所有feature
分支开发完毕的功能需要合并到develop进行测试后才能合并到master
。develop
可能会存在多个。develop
不能合并到master
。feature
,开发分支。hotfix
,紧急修复分支,在master
分支出现BUG需要进行紧急修复时使用。
参考文章:添加链接描述