1、版本控制工具

1.1、集中式版本控制

CVS、SVN、VSS,常用的是SVN
图片

1.2、分布式版本控制

Git、MerCurial等,常用的是Git
图片

2、Git结构

git分三个区:
①、工作 区:可以比作平时我们写代码的地方
②、暂存区:临时存放区,通过git add . 获取git add 命令可以将工作区的文件添加到暂存区
③、本地库:本地库记录了所有的历史版本,通过git commit -m “提交说明” 命令可以将暂存区的文件提交到本地库。
图片

3、Git的协作

3.1、Git和代码托管中心

第2节讲解了git的本地结构分为三个区,如果一个人开发的话,有git完全足够,因为他本身就可以作为一个版本控制工具,那如果是多人协作,那需要一个集中管理的代码托管中心

局域网下:
gitLab服务器,这个可以自己搭建,当然局域网下也可以通过域名等使得在外网环境下也能访问。
外网环境下:
国外有:gitHub:

https://github.com/

国内有:码云(gitee)

https://gitee.com/

3.2、团队内协作

图片

解析:有两个角色,他们都有自己的本地库
①、岳不群:他也许是个项目经理的角色
②、令狐冲:他是令狐冲手下的一个程序员
有一天,发生这样的故事,公司来了一个项目,需要马上开发,岳不群在自己本地初始化了一个git本地库,搭建了项目基本框架后push到了远程库,并把地址发给了令狐冲,令狐冲从远程clone了一份到自己的本地库,然后就开始开发了,但他把项目开发完成后,把自己的代码push到了远程库,那么项目作为项目经理的岳不群就可以从远程pull下来刚刚令狐冲提交到远程库的代码。这就是团队内协作的基本过程。

3.3、跨团队协作

图片

上个项目由于用到了独孤九剑相关的武功,对令狐冲来说太简单,令狐冲三下五除二就完成了,正在他得意的时,岳不群又给他分配任务了,令狐冲一看懵逼了,这块正好是他的弱项,可能只有葵花宝典才能决绝,这突然让他想到他的好朋友东方不败,于是他和领导岳不群说明了情况。得到领导的允许后,他们一起找到东方不败。
东方不败接下项目后,首先从岳不群的远程库中fork了一份到自己的远程库,clone到自己的本地库后开始开发了,当他开发完成push到自己的远程库,确定没问题后,她提交了个申请|(pull request)给岳不群,岳不群审核完毕后,就合并(merger)到了自己的远程库之后,岳不群和和令狐冲就可以pull到自己的本地库,查看东方不败提交的代码。
这就是团队外协作的例子。

4、Git的优势

①、大部分在本地操作,不需要联网。Git在本地有版本库,保存了完整的历史,所以在本地就可以做完整的版本控制
②、完整性保证。对每一次提交的数据做Hash的操作,可以使用将本地库和远程库做hash运算,得出的结果一致,说明和远程库保持一致。
③、尽可能添加数据而不是删除或者修改数据。
④、分支操作非常快捷流畅。
⑤、与Linux命令全面兼容。

最后更新: 2019年06月22日 17:29

原始链接: https://www.sunnymaple.cn/2018/08/04/Git简介/

× 请我吃糖~
打赏二维码