因公司里培训的git知识,自己也用了一小段时间,觉得还不错,现简单分享下。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。与SVN区别
1) 最核心的区别GIT是分布式,而SVN是集中式。
2) GIT内容存储使用SHA-1哈希算法,而SVN使用文件。
3) GIT在clone后,offline状态下可以看到log,而SVN不可以。
4) GIT在自己私有库(没有授权给其他人写权限)commit,可以不用update,而SVN必须先update才能commit,不然合并时可能出现一些错误。
… …
我就讲一点点,有兴趣的同学可以去了解。
GIT的结构:
fork私有库是集中库的镜像,可以与集中库是自动同步。在私有库上可以创建各种分支,包括生产版本、开发分支、紧急修复等。
本地库(相当于自己开发的电脑)是从fork库上clone下来。clone后可以很好切换fork库中的各个分支进行操作。
分支操作说明
首先从fork库clone到本地库。
研发人员在本地库切换到topic分支开发,版本开发完后commit本地库–>push私有库的topic–>PR(pull request)到集中库的master。
研发经理会从集中库master创建一个预发布的release分支,测试如果有bug,研发人员在自己的私有库中从集中库创建一个release分支,然后本地库切换到release分支进行开发修复,完后commit、push、PR。
研发经理就研发人员修复release分支bug后,确认没问题了,就创建一个production分支作为发布的版本。如发布后,有bug需要修复的,研发经理从集中库创建一个hotfix分支,研发人员从私有库创建一个hotfix分支,然后本地库切换到hotfix分支进行开发修复,完后commit、push、PR。
冲突解决
在开发过程中,遇到冲突是难免的,道理也能简单,就是有2个PR到集中库,同个地方代码有冲突,系统也不能识别,到底是用谁的。这就需要解决。
在PR上去后,发现冲突。在本地库的topic分支上pull私有库的master代码下来。然后就会发现有冲突的文件呈现黄色的感叹号。右键选择冲突编辑解决,下图。
如有不足,请提出并多多包涵,谢谢。