git简介:
Git是目前世界上最先进的分布式版本控制系统(VCS-Vetsion Control System)。可以将同一个文件在不同时间的修改结果保存到git仓库中,随时可以恢复到某个需要的版本进行查看。 具体功能有:
纪录文件的所有历史变化
随时可恢复到任何一个历史状态
多人协作开发或修改
恢复错误
多功能并行开发
git术语:
工作区(Working Directory):就是你在电脑里能看到的目录,比如我的/pro文件夹就是一个工作区。
版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master .
我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
git基本命令的使用:
安装git , 在Linux系统中是自带git软件的
rpm -q git #查看git是否安装
yum install -y git #安装git软件
rpm -qc git #查看git的配置文件
git init #初始化git , 创建git仓库
git config --global user.name '用户名' #设置git用户信息
git config --global user.mail "用户邮箱" #设置git用户邮箱
git status #查看git状态
git add 文件 #将文件添加到缓存区中 , 对文件进行跟踪
git commit -m '提交版本备注信息' #提交当前版本 并 备注当前版本信息
git log #查看git日志
git checkout 版本hash值 #切换版本
git --help #查看帮助
git help config #查看特点的帮助
实例:
#目标:
1、创建一个项目目录/gg
2、设置git的全局参数
3、用git对目录中的文件版本进行管理:初始化git数据
4、管理工作如下:(生成文件、提交版本、恢复)
a、创建新文件
b、用git将文件添加到git的缓存区
c、用git提交当前版本,并查看git状态和日志
d、再次在/gg目录中创建一个文件,参考b、c步骤的步骤处理新添加的文件
e、再次执行d的操作。
f、删除其中一个文件,将删除操作提交保存到版本信息中,查看git状态和日志。
g、用git恢复到第一次保存的版本,用ls查看目录中有哪些文件。
k、查看git日志文件,恢复到my.txt第3次保存的版本,查看my.txt文件内容。
实验操作步骤:
先安装git , 安装好后初始化一个新git仓库
创建一个文件夹(或使用已有文件夹)
mkdir /gg #创建一个/gg目录
cd /gg #进入到/gg目录中
git init #初始化git , 创建git仓库
ls -a #查看/gg隐藏文件 , 发现有.git则初始化成功
进行一些基本信息设置(该步骤在创建好的目录中设置全局)
git config --global user.name "user" #设置git的全局用户
git config --global user.mail "[email protected]" #设置git用户的邮箱
git config --list #查看设置
例如:设置了一个gg用户 , 邮箱为[email protected]
在/gg目录中创建一些文件 , 例如创建a1.txt , a2.txt , a3.txt这些文件
用git将文件添加到git缓存区中 , 并查看状态和git日志
提交当前版本内容 , 备注为"file_v1"
再在创建一个a4.txt , 将a4.txt添加到git缓存区中 , 再提交该版本备注为"file_v2"
此时删除文件a1.txt和a2.txt文件 , 并执行之前的操作
查看三次版本的日志文件 , 并切换到第一次的版本中
查看版本1的内容 , 看看是否切换成功
由上图可以看出切换成功 , 再次切换到版本3 , 看看目录的中存在哪些文件
到此实验结束 , git的使用也到此为止 !!
码云的简单使用
码云是国内的GitHub平台 , 也是常用的git远程仓库 , 远程仓库要不使用现有的git网络仓库服务(GitHub , 码云等平台) , 要不就搭建自己的git仓库 , 在这里主要讲码云的使用 , 以及搭建自己的git仓库
码云的官方网址 :https://gitee.com/
首先我们应该在码云官网注册一个账号 , 这里不做解释 ; 注册好账号后登录码云平台
第一步 : 在码云平台上创建一个网络仓库(项目)
在左上角处可以看到如下图所示:
点击创建 , 进入以下页面 ,复制仓库网址
上面复制的图片为https的那个网址 , 复制好之后 , 在Linux系统中创建一个文件(/20190318) , 命令如下;
进入到此目录 , ls查看一下当前文件
对当前目录进行点操作 , 比如添加几个文件 , 将/etc/hosts*复制到当前目录中 , 如图:
此时查看一下git的状态 , 并添加需要追踪的文件
将当前文件版本提交至码云 (git push)
此时当前版本已经同步到了码云上面 , 我们可以在码云上面看看文件是否同步
同理再作做一次修改 , 再次把版本提交到码云上面去
删除文件后将版本二提交至码云
此时 , 再次查看码云上的文件 , 发现码云和Linux系统中的文件一样 , 被删除的两个文件都不见了
由于每次提交都需要输入用户名和密码 , 这样不仅不方便 , 相对来说也不是安全 , 所以在码云上可以上传公钥 , 实现免密码提交同步
只需在本地创建密钥 , 把公钥上传至码云即可实现 , 首先生成密钥
上传公钥至码云上面:
右上角点击图标 , 再点击设置:
进入之后 , 左边会有一个安全设置 , 点击ssh公钥
上传公钥(生成的公钥在/root/.ssh/di_rsa.pub文件中 , 把里面的文件复制即可) 如图:
点击确定 , 提示你输入密码(码云用户密码) ,输入密码后,出现以下界面,会产生指纹,如图:
成功上传密钥后 , 再次创建一个文件 , 用git clone 将仓库中的文件下载过来
提交修改后的当前版本至码云上面 , 成功提交(免密提交)
再次在码云上验证文件是否同步
此时仓库中多了a1~a5这5个txt文件 , 同步成功 !!!
git分支管理
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支(即master)。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
查看分支:git branch •说明:默认主分支为master
创建分支:git branch 分支名
取出分支版本:git chkeckout -b 分支名
说明:git checkout -b表示创建并切换到分支
实例:
接着上面码云的实验创建分支
上传之后 , 在码云上验证
git merge dev 合并dev分支到master主分支中
git push origin master •git push origin :dev 删除远程的dev分支
搭建本地git hub服务器
拓扑图:
系统centos7:192.168.11.11(GitHub服务器) , 192.168.11.12(客户端)
在192.168.11.11(服务器)操作过程:
安装:yun install -y git
创建文件:mkdir -pv /srv
进入/srv目录:cd /srv
创建git裸库git init --bare sample.git
创建git用户 , 密码设置为git : useradd git passwd git
修改/srv目录的属主属组:chown -Rv git:git /srv
服务配置完毕
在192.168.11.12(客户机)配置如下;
安装:yum install -y git
创建目录: mkdir -pv /test
生成公钥:ssh-keygen
上传密钥:ssh-copy-id [email protected]
git clone [email protected]:/srv/sample.git
如果克隆成功 , 则说明git客户端配置成功
以上实例自行去实验 .