自动化运维_Git—3.1

automation——01

环境:使用2台虚拟机。develop:192.168.4.10(客户端)与gitlab:192.168.4.20(服务端)。

查看yum仓库情况,最后一行可以看到软件包数量:dnf repolist -v
新版本中yum被dnf替代,yum命令依然可以使用:dnf -y install vim net-tools bash-completion

git 可以作为程序(代码文件)的版本管理工具
1,环境准备

服务端:
[root@gitlab ~]# dnf -y install git //服务端安装git
mkdir /var/lib/git //创建git目录
git init /var/lib/git/project --bare //创建空仓库,用来存储数据

客户端:
[root@develop ~]# yum -y install git //客户端安装git
git clone 192.168.4.20:/var/lib/git/project //从服务端克隆仓库,然后输入yes与服务器密码

2,使用git仓库

[root@develop ~]# cd project/ //进入仓库
[root@develop project]# git remote -v //检查仓库与远程git服务器地址
git config --global user.name “abc” //定义客户端用户名
** git config --global user.email “abc@abc.com”** //定义客户端邮箱
cat ~/.gitconfig //查看
echo “abc001” > 001.txt //创建文件
git status //查看仓库状态,可以显示仓库文件被修改或者新创建的信息

git add . //把新增的、修改的都加到缓存
git add -A #把新增、和修改的、和删除的都加到缓存

git commit -m “001” //提交到本地仓库 -m后面是注释

git push //将本地git仓库数据推送到远程git服务器

3.查询

[root@develop project]# git log //查询日志,可以看到本地仓库中提交的注释记录
echo “002” > 002.txt //在仓库中继续创建文件
git status //查询状态
git add . //提交到暂存区
git commit -m “002” //提交到本地仓库
git push (上传) //提交到远程仓库
git log //再查日志

git log //查看完整日志
git log --pretty=oneline //查看精简日志
git log --oneline //查看更精简日志
git reflog //查看本机操作日志

[root@develop project]# git pull (拉取)

二,HEAD指针,可以将数据恢复到过去的状态(类似虚拟机的快照)

当前HEAD指针为HEAD@{0}
git reflog //首先查询日志可以看到第1列的随机字符串,该字符串定义了每次commit提交的数据状态

git log --oneline //也可以看到,比如显示信息是:
24d2e94 (HEAD -> master, origin/master) 003+
21b6a87 003
54fba4f 002 002-1
864774f 001

git reset --hard 24d2e //回到时间节点为21b6a数据状态(相当于回到以前)

情景:创建文件 A ,写了一些代码,然后git add .与git commit。再修改A ,继续git add .与git commit ,再创建B文件,然后
再git add .再git commit ,此时发现需要最初的A的数据,就需要回到过去挽救这个文件,同时为了避免回到过去丢失B文件,按照以下方式进行,回复到过去的时间节点,找回数据思路:
1,git reflog 查看日志,找到旧数据所在时间节点
2,git reset xxxx --hard 回到过去,xxxx是时间节点的记录
3,把需要找回的数据,从仓库中拷贝到另外一个目录
4,git reset xxxx --hard 回到现在
5,在之前的目录找回旧数据

三,git分支

当项目内容比较多时,可以在git中使用分支,不同分支的文件可以互不
干扰而不用创建多个仓库

git branch //查看分支
git branch hotfix //创建名叫hotfix的分支,名称可以自定义

git checkout hotfix //切换分支
echo “hotfix-001” > hotfix001.txt //创建属于hotfix分支的文件
git add . //提交到暂存区
git commit -m “hotfix001” //提交到本地仓库

git checkout master //切换回默认分支
echo master > master.txt
git add .
git commit -m “master”

git checkout master //切换回默认分支
git merge hotfix //将hotfix分支与master分支合并,然后进入到文本编辑器中写注释,可以输入一些合并原因,保存退出
ls //查看当前分支,可以看到拥有两个分支的文件

分支中的特殊情况:
如果分别在不同分支,创建同名文件,内容不同,再进行合并时,会发生冲突,此时需要手工修改冲突文件,修改完之后就可以解决冲突
echo abc > abc.txt //在master分支继续创建文件
git add .
git commit -m “abc”

git checkout hotfix //切换到hotfix的分支
echo xyz > abc.txt //在hotfix分支继续创建文件
git add .
git commit -m “abc”

git checkout master //切换到master的分支
git merge hotfix //再次合并分支,失败
vim abc.txt //编写文件,由人来决定最终合并内容保存退出即可解决冲突
git add .
git commit -m “abc+” //提交,完成合并

四,git使用方式

git可以使用多种方式建立客户机与服务器间的连接,这里先介绍第一种:使用ssh协议建立连接,实现免密通信

ssh-keygen //交互式创建ssh秘钥
ssh-keygen -f /root/.ssh/id_rsa -N ‘’ //非交互式创建ssh秘钥
ssh-copy-id 192.168.4.20 //传递秘钥到4.20
cd ~
rm -rf project //删除仓库
git clone 192.168.4.20:/var/lib/git/project //重新克隆
echo abc > abc.txt //创建测试文件
git add .
git commit -m “abc”
git push //提交到服务器可以免密码

后续课程需要的软件:
gitlab_zh.tar
jenkins_plugins.tar.gz
jenkins-2.263.1-1.1.noarch.rpm
另外要把192.168.4.30 准备好

关于git,这是比较高水平的讲解:https://www.cnblogs.com/wbl001/p/11495110.html。可以参考更详细的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
syncrypto可以用来将一个文件夹里面所有文件同步到另外一个加密的文件夹中, 一般来说,可以这样使用: syncrypto                         syncrypto 文件夹A  <---------------------> 加密文件夹B <-------------------> 文件夹C  机器X              (可以放在不安全的地方,例如云存储                机器Y 加密文件夹B中的文件都是加密过的,所以可以把它放在不怎么安全的地方(例如云盘,公共硬盘等) 明文文件和加密文件是一一对应的关系,所以每次同步只会添加(删除/修改)那些需要的文件,这样 很适合那些基于文件系统的同步工具,例如云盘、rsync等。 同步过程是双向的,所以,文件不仅仅是从明文文件夹同步到加密文件夹,同样也会从加密文件夹同步到 明文文件夹,syncrypto会根据算法选择最新的。 如果有冲突的话,syncrypto会将明文文件重命名(加上单词conflict),然后将密文文件同步过来 syncrypto是不会删除文件的,如果同步过程中需要删除或者覆盖文件,syncrypto会将文件移动 到废纸篓里面。密文文件夹的废纸篓在_syncrypto/trash下,明文文件夹的废纸篓在 .syncrypto/trash下。密文文件夹废纸篓里面的文件一样是加密过的。 主要 Feature : 双向加密同步 加密文件与明文文件是一一对应的关系 灵活的同步规则配置(方便将某些不必要同步的文件排除) 同时支持 Python2,Python3, Windows, Linux, OS X 比较全面的测试用例覆盖 标签:syncrypto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值