版本控制系统「Git」

版本控制系统「VCS」,简单理解为记录每次更改记录的系统,以便查看历史修改记录,更好的管理文件和软件。

但是缺点也在,比如有很多人要协同完成同一个项目,修改的话客户端必须联网,才能将自己的东西提交到服务器进行版本修改,而且,如果服务器出现严重问题,可能还会导致数据丢失。

后来,linus 可能认为这样很麻烦,毕竟自己开发 linux 到了后期管理起来很不方便,便自己写出了现在的 Git「分布式版本控制系统」。

优点很大一点就是:开发人员可以在没网状态下修改项目或文件,等到有网了再进行修改同步,也不用当心数据丢失,因为在使用 Git 的客户机上都有被分解,大大提高了开发效率。

Git的功能特性:
从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码 fetch 下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用 pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

优点:

适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。

缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

猜你喜欢

转载自blog.csdn.net/X_Teddy/article/details/88201863