在linux中什么是git ,git的作用是什么?如何使用。

前言:在开发过程中每天都会写很多代码,并且在他们代码中会有一些版本相当于迭代,由于每天都要写很多其他东西,就会有很多版本产生然后就需要一个版本控制的系统来做项目管理,比如说微信的11版本12版本,我举个例子或者说在我们的代码开发过程中会有几个组去开发微信,可能一个组开发视频功能另一个组开发支付功能,他们同时为微信一个应用做了大的好多开发一个并行的线路,也是需要一个版本管理工具来进行管理的(分支)。

1.版本控制系统

1.版本控制系统其实就是一个控制文件版本的系统。
.版本仓库是控制版本的核心,任意客户端都可以链接使用版本仓库。

结构如下图。

                      

其实这个和我们配置yum仓库的时候差不多。

2.主流的版本控制系统。

其实目前的主流版本有两中,一种是集中式版本控制系统,另一种是分布式版本控制系统,我来说一下两者的差别吧。

1.集中版本控制系统

.所有客户端都共享一个仓库。

.所有操作都要进行联网操作。

.代表的软件有subversion

服务器记录所有版本,但是客户端只有最新版!

                             

缺点也很明显、

1,集中版本控制系统只能保存最新的,比如说我第一台客户端下载A1版本之后修改成A2然后提交(服务器)- - 断网 - -,然后第二个客户端下载A2进行修改,修改完成提交数据(覆盖并保存旧数据) A3 - - 断网- -  ,那么第三个下载A3进行修改,提交数据(覆盖A3)结果出现修改错误无法恢复之前的数据。

2.分布式版本控制系统

.只是断网操作

.每一个客户端都能克隆一个完整的仓库。

.代表软件git

服务器记录所有版本,客户端也有所有版本,具有本地仓库功能,支持断网。

 

 分布式优点,

客户端1号把服务器上的A1下载到本地仓库,客户端修改A1->A2 提交远程服务器 - -断网 - -

客户端2号修改A2->A3 (提交本地仓库)。

客户端3号修改A3->A4(提交本地仓库)如果三号修改完发现有问题可以进行修复。

、那么显然集中版本控制器 对比 分布式版控制器 ,(缺点就是断网)断网不能操作,客户端只能看到最新的,分布式优点(断网可以操作,可以从服务端克隆到本地仓库)。

2.GIT的工作流程

1.仓库区 保存所有数据的地方

2.工作区 实时编辑的区域

3.缓存区 就是一个文件保存下次将提交的文件列表信息

3.怎么用GIT

1.搭建服务端分布式仓库

1.首先大家先在var目录下创建一个git目录

mkdir /var/git

2.git 初始化指定刚刚创建的目录,在目录里面创建一个project 这样我们的服务端GIT仓库就创建好了下面就是模拟客户端来进行版本模拟。

git init /var/git/project --bare

3.以上步骤效果显示

2.如何使用分布式仓库
1.我用另外一台服务器来 进行客户端模拟

1,首先我用主机名为A1的客户端进行克隆到本地。

git clone root@192.168.4.20:/var/git/project    克隆gitserver的仓库

  

2.我们可以看到我已经把4.20结尾的仓库克隆到本地了,这个就是本地仓库支持断网进行操作。

3.我来写一个文件把他上传到暂存区,然后再上传到到我们的本地仓库和服务器上 

cd project     进入到本地仓库

echo "init data" >a.txt  创建一个文档
git add .    上传到暂存区
git commit -m  "备注"   上传到本地仓库
git pull 上传到服务器  

 

大家可以看到已经上传成功,工作流程大家可以看上面的表格  先clone 克隆仓库 进入仓库,上传缓存区,上传本地仓库,上传至服务器。

 3,那么我给大家演示多次生产数据产生信息怎么切换版本。

  

大家可以看到我上面生成了很多版本。
git reflohg   带指针来查看日志 (啥是指针,指针就是指定的版本号)

git reset --hard  后面写上凭证上面那副图看我标记

大家可以看到版本切换成功。

4.什么是GIT支分

1.可以让你的开发分多条主线同时进行每个主线互不影响

2.可以按功能模块分区,也可按照坂本进项分区

3.可以合并分区

他也有规范我就不写了给你们找个图 盗个图

 是什么意思呢我给你画个图

 

 同时开发多个功能。

下面来操作一下

git status 查看当前分区
git checkout -v 查看所有分支
git branch hotfix  #创建分支hotfix
git branch feature #创建分支feature
git checkout hotfix #切换hotfix分支

合并分区 

可以看到我创建了两个分支,下面我都写上内容然后合并。

git checkout hotfix   切换到这个支分

echo "fix a bug" >> new.txt  写内容到文件

git add . 上传到缓存

git tommit -m "fix a bug"  上传到本机仓库

git checkout master 切换主分

cat new.txt       /master分支中没有hotfix分支中的数据

git merge hotfix     #合并分支

 

5.解决支分的冲突、

出现这种情况有我们就要冲动配置一下文件了,可能开两个内容不一样我们把第二个内容全删掉, 保持一致性。

可以看到支分内容不一样,一个是AAA,另一个是BBB所以合并会导致冲突,解决办法就是保持一执。

把AAA删掉就好了 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值