综述:来了新的公司,以前用的是svn,现在是git,在这里总结学习下,提高自己的认识。
1.git介绍
svn、vcss系统等都是集中式的版本控制系统,git是分布式的。两者的区别是:
git
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
- 资料少
- 学习周期相对而言比较长。
- 不符合常规思维。
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
SVN
- 管理方便,逻辑明确,符合一般人思维习惯。
- 易于管理,集中式服务器更能保证安全性。
- 代码一致性非常高。
- 适合开发人数不多的项目开发。
2.git常见问题汇总
面试问题:
- 在开发的过程中,如果发现线上的代码存在问题,应该怎样处理?
在集中库创建一个hotfix分支,进行修改后将其push到集中库中,然后发送一个pr向QA请求合并代码到production库中。
- 正常情况下和紧急情况下提交git版本的流程的不同之处?
3.当自己提交的代码和同事的代码冲突时的解决办法?
首先将远程的分支拉下来。
做好代码的取舍,解决冲突,然后再次将代码提交即可。
解决外冲突时候还要再提交一次pr。
4.使用git的技巧分享
- 设置git,避免每次上传代码都要输入密码
- 将webstorm和git打通,直接在编辑器中操作git会更加方便
- git除了git bash ,git Gui两种操作模式之外,还可以安装和SVN类似的可视化操作工具,编辑代码更加方便