Git特点:
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
Git必看秘籍:https://git-scm.com/book/zh/v2
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
安装Git:
yum install -y git
获取 Git 仓库通常有两种方式:
初始化版本库:
mkdir demo
cd demo/
git init
ls .git/
.git目录是git跟踪管理版本库的
用户信息
git config --global user.name "xxxx"
git config --global user.email [email protected]
检查当前文件状态
git status
git status -s //简化输出
这里没有文件,我们自己创建一个再查看
状态简览
??
标记A
标记M
标记跟踪新文件
git add filename ##其实就是把文件添加到暂存区
提交更新
git commit -m "add README"
修改文件后再查看状态
可以看到M在偏右位置,表示工作区修改,还没有添加到暂存区
查看已暂存和未暂存的修改
git diff
跳过使用暂存区域,直接提交(仅限于已经存在的文件,即状态不是??)
git commit -a -m "change README"
忽略文件
cat .gitignore
.* //忽略所有隐藏文件
/test //只忽略当前目录下的test文件
build/ //忽略任何目录下名为 build 的文件夹
移除文件
git rm xxx ##删除(包括本地)
git rm --cached xxx ##工作区文件还会存在,停止跟踪
重命名文件
git mv README README.md
查看提交历史
git log
git log -p -2
git log --stat
git log --pretty=oneline
git reset HEAD xxxx ###从暂存区回撤到工作区
git checkout -- xxxx ##撤消对文件的修改
版本回退
git reflog
git reset --hard 5d1b47d
远程仓库:
注册github帐号,并新建一个仓库
推送本地仓库内容到github:
git remote add origin https://github.com/huayu9527/git.git ##关联远程仓库
git push -u origin master ##第一次推送需要加 -u参数
使用https方式推送每次需要输入用户名和密码,如果不想麻烦的话采用ssh方式:
ssh-keygen ##生成本地密钥,并上传公钥到github
复制上图公钥内容
粘贴到该位置
点击添加
删除http,添加ssh
git remote rm origin
git remote add origin [email protected]:huayu9527/git.git
修改文件,提交到本地仓库,上传至远程仓库
可以看到远程仓库内容变更
克隆远程仓库到本地
git clone [email protected]:huayu9527/git.git
官网:https://about.gitlab.com/install/
软件下载(官方下载慢,推荐使用国内镜像站点) https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
软件安装: (官方推荐至少4G内存)
yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure //重载服务
登录gitlab:
http://192.168.1.11 //用户:root 第一次登录需要强制修改密码
常用命令 | 作用 |
---|---|
gitlab-ctl start | 启动所有 gitlab 组件 |
gitlab-ctl stop | 停止所有 |
gitlab-ctl restart | 重启所有 gitlab 组件 |
gitlab-ctl status | 查看服务状态 |
gitlab-ctl reconfigure | 重载服务 |
gitlab-ctl tail | 查看日志 |
可以去设置改为中文
添加ssh key
本地克隆私有仓库
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
安装jenkins:
rpm -ivh jdk-8u201-linux-x64.rpm
rpm -ivh jenkins-2.240-1.1.noarch.rpm
systemctl start jenkins
192.168.1.12:8080
使用初始密码登录:
cat /var/lib/jenkins/secrets/initialAdminPassword
更新插件源:
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
cd /var/lib/jenkins/updates ##输入密码后会生成updates目录和文件
sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
安装默认插件即可,使用admin用户,登录后修改密码。
完成后登陆,在设置中修改密码
创建一个任务
复制私钥
上面无法连接git仓库,这是因为我们没有在jenkins主机安装git工具
安装后,没有报错
定义轮询间隔,有更新时触发jinkens构建
这里的日程表规则和定时任务是一样的,定义了什么时候轮询一次,我们是测试环节,所以定义每分钟一次,下面黄字提示是系统认为频率太高,可能是设置错误,所以进行提醒。
构建选择执行shell命令
Git提交代码到gitlab,jinkens轮询检测到代码仓库的变更,触发构建。
保存后手动触发一次
更改git仓库内容,同步到远程主机
查看jenkins
gitlab自动触发jenkins(添加gitlab插件)
配置刚才的任务,重新构造触发器
点击高级
点击生成token
修改gitlab配置
这里填写的url和token是jenkins构建触发器时生成的
测试下
查看结果
我们再进一步结合docker,使jenkins触发后,构建docker镜像,并推送到harbor仓库
安装插件
在jenkins主机安装docker-ce
systemctl enable --now docker.service
重新打开一台虚拟机,作为harbor仓库
安装docker-ce
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
在阿里云或者其他镜像站下载container-selinux安装包安装
yum install -y docker-ce
systemctl enable --now docker.service
下载解压harbor,并下载docker-compose
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
vim harbor.yml
创建证书
cd /data/
mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/harbor.key -x509 -days 365 -out certs/harbor.crt
复制证书给jenkins主机
./install.sh
jenkins和harbor主机配置本地解析
vim /etc/hosts
配置jenkins
chmod 777 /run/docker.sock
测试
测试
查看jenkins
查看harbor仓库