GIT (分布式版本控制系统)

一、简介

Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件

 Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper

特点

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库

 版本控制系统

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
简单来讲就是如果你是一位软件开发工程师,你可能需要保存你的项目代码的所有文件的修订版本,那么采用版本控制系统(VCS)将会轻松解决这个问题。
它可以将某个文件回溯到之前的版本,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微

Git (分布式)与 SVN(集中式)的区别

1、GIT是分布式的,SVN是集中式:这是GIT和其它非分布式的版本控制系统,例如SVNCVS等,最核心的区别。
说明:集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的缺点就是必须联网才能工作
2、GIT的模式不仅速度快还更加灵活,生成版本时不依赖网络,交换数据时才需要;svn 在生成版本信息和交换数据时都需要网络
3、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn, .cvs等的文件夹里。
4、GIT分支和SVN的分支不同:分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了
5、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
6、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏;GIT的缺点:代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

GIT工作原理

工作流程:
1、git clone 克隆远程资源到本地目录,作为工作目录;
2、然后在本地的克隆目录上添加或修改文件;
3、如果远程修改了,需要同步远程的内容,直接git pull就可以更新本地的文件;
4、本地在修改之后,可以通过git status 查看修改的文件。然后使用git add 添加修改的文件暂到缓冲区,可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态;
5、在添加之后,可以使用git commit添加到当前的工作区;
6、在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;
7、git push将本地的修改推送到远程的GIT服务器。

二、部署GIT服务器

系统 主机名称 IP 角色
CentOS 7.4 GIT-Server 192.168.2.2 中央服务器(交换数据)
CentOS 7.4 Client 192.168.2.3 客户端
windows 7 windows 7 192.168.2.50 客户端
    设置ssh交互

[root@GIT-Server ~]# ssh-keygen           
...........
.....
..
[root@GIT-Server ~]# ssh-copy-id root@192.168.2.2                 
[root@GIT-Server ~]# ssh-copy-id root@192.168.2.3                  
——————————————————————————————————————————————————————————————————————————

[root@Client ~]# ssh-keygen                        
.........
...
[root@Client ~]# ssh-copy-id root@192.168.2.2               
[root@Client ~]# ssh-copy-id root@192.168.2.3              

 1、安装GIT服务


[root@GIT-Server ~]# yum install -y git             
...........
.... 
————————————————————————每个机器都必须设置:你的名字和Email地址
[root@GIT-Server ~]# git config --global user.name "server"                  
[root@GIT-Server ~]# git config --global user.email "email@server.com"        

————————————————————————————————————————————————————————————————————————————————————

[root@Client ~]# yum install -y git                  
..............
.........
[root@Client ~]# git config --global user.name "client"
[root@Client ~]# git config --global user.email "email@client.com"

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘浪初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值