补充知识:
如何更改浏览器的语言
选择浏览器的长方向,选择preference-->content--->choose-->语言
git代码仓库与githab远程仓库
什么是版本控制系统:
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
什么是分布式版本控制系统:
分布式版本控制系统(Distributed Version Control System,简称 DVCS), 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
简单解释git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的
git commit 命令执行成功后会告诉你,1file changed:一个文件被改动了(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)
为什么git添加文件需要add commit一共两步呢?因为add是先把她放在赞存区,commit一般都是从赞存区提交的,commit一次可以提交很多文件,所以你可以多次add不同的文件,每次修改完文件之后,记得一定要add,再commit,否则提交失败
git必须知道当前版本是哪一个版本,在git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较数不过来,所以就写成HEAD~100
git status的状态显示分类
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 你可能注意到了 M 有两个可以出现的位置,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。 MM表示在工作区被修改了并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改的记录
我们把文件往git版本库里添加的时候,是分两步进行的:
git add 把文件提添加进去,实际上就是把文件添加到暂存区
git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支
因为我们在创建git版本库时,git自动为我们创建了唯一一个master分支,所以,现在,git commit 就是往master分支提交更改,可以简单的理解为,需要提交的文件修改统统放到暂存区,然后一次性提交暂存区的所有修改
###可以在真机中做,但必须在7.3中的主机中做
####首先下载git
yum install git ##直接下载就可以了
1003 mkdir git 创建一个目录
1005 cd git/
1007 git init 必须在这个目录里面进行初始化
1008 l. 显示隐藏文件
1009 cd .git/ 这是git的主分枝,一般我们不在里面操作,我们在分支里面操作
1011 cd .. ##退出主分枝,
1012 git status ##详细查看主分枝的状态
1013 git status -s ##比较简略的查看状态
1014 echo westos > readme.txt ##我们建立一个文本文件,并向里面导入数据
1016 git status -s ##我们发现他的状态为??,说明他没有在缓存区,只是简单的增加了文件而已
1017 git status ##他会提示把他加入到暂存区,用git add 文件名
1018 git add readme.txt ##我们将添加的文件加入到缓存区
1019 git status -s ##我们发现他的状态为A
1020 git status
1021 git commit -m "add readme.txt" ##我们将加入赞存区的东西提交,-m 代表对提交的东西的描述,但是他会提示我们要自己建立用户,因为我们要建立一个自己的用户进行提交,或着我们在提交之前,先创建用户和email
1022 git config --global user.name wubian
1023 git config --global user.email "[email protected]"
1024 git commit -m "add readme.txt"
1025 git status ###发现并不会有所显示
1027 git status -s
1028 git log ##产看git的日志,刚才添加的用户名,email都有所显示
1030 vi readme.txt ##重新进去文件,进行修改
1031 git status -s#发现他的状态为右边M,他代表修改了文件,但是没有提交到暂存区
1032 git add readme.txt ##进行提交到暂存区
1033 git status -s发现他的状态为左边M,修改了文件,提交到暂存区
1034 vi readme.txt ##对他又进行修改
1035 git status -s ##发现他的状态为2个M,发现他修改了文件,并放在了暂存区
1036 vim file1.txt
1037 git status -s
1038 git add file1.txt
1039 git status -s
1040 git add readme.txt
1041 git status -s
1042 git commit -m "change readme.txt"##一次性可以提高多个放在暂存区的文件
1043 git status -s ##因为提交了,所以显示每有什么可以做的
1045 rm -f file1.txt ###我们要删除提交的文件时,首先第一部进行本地删除,然后查看状态,然后他会提示你这是一个删除文件 ,接着要在仓库里面删除,记得在仓库里面删除时,一定要提交,如果删除没有放在暂存区的文件时,直接执行删除即可
1047 git status -s
1048 git status
1049 git rm file1.txt
1050 git status
1052 git commit -m "del file1"
1053 git status
1054 git status -s ##什么都不会显示
1055 git log ##查看日志,发现自己做过的步骤
1056 cd
1057 l.
1058 cat .gitconfig ###查看自己设置的用户名和email
1059 cd git/
1064 git log --pretty=oneline ##可以查看简约的日志
1066 git reflog ##一个更简单的的日志
1067 git reset --hard HEAD^ ##我们将步骤返回到上一部
1068 git reflog
1069 ls ##我们发现删除的文件回来了
1070 git reset --hard 0532c3c ##我们也可以直接指向返回的命令的指针
1071 ls ##发现回来的文件又被删除了
1073 git reflog
1075 vim readme.txt ##又对文件进行了修改
1076 git status -s
1077 git status ##他会提示你是要加入,还是要撤回,
1078 git checkout -- readme.txt ##我们选择撤回,发现文件又恢复到原来的样子
1079 cat readme.txt
####我们要注册一个github的帐号,把他作为共有仓库,私有仓库是要收费的,
登陆www.github.com
create a new repository,填上Repositry name ,我们选择共有的,一定不要点初始化,因为我们在本机已经初始化过了,提交即可。接下来我们选择免密执行,用ssh,接下来我们要远程连接github,复制他的绝对路径,打开shell,进行远程连接, git remote -v
git remote add origin 绝对路径 git remote -v ##会有所显示
git push -u origin master ##我们远程拉区master分支,他会报错,然后我们要对他进行免密。
1080 cd
1081 cd .ssh
1082 ls
1083 ssh-keygen
1084 ls
1085 cat id_rsa.pub ###复制公钥
进入浏览器界面,打开settings,找到ssh and GPGkeys,create keys,我们将公钥粘贴,起个名字为root,填加就好了。
1089 cd
1090 cd git/
git push -u origin master ##接下来就可以免密执行了,从本地上传从远程仓库中抓取,虚拟机要能上网
5.忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
touch .test ##建立一个隐藏文件
git status -s ##发现这个隐藏文件是未跟踪文件
vim .gitignore ##我们进去写忽略模式,(.*),发现这个隐藏文件不再是未跟踪文件,不见了,我们在职场中可以根据自己的需求,进行隐藏相应的文件
git status -s
我们进入到浏览器,重新建立一个自己的课题,记得一定要初始化,进入到自己创建的课题里,我们发现自己拉区的文件在浏览器有所显示,我们也可以在浏览器进行科隆或者下载,我们选择用ssh进行科隆,复制克隆地址
进入到shell区,可以不再git目录下,git clone 科隆地址 ls ##发现克隆下来了
cd demo cat README.md vim README.md 进行修改文件内容,git add README.md git commit -m "change v1"
git push -u origin master git remote -v
###需要另外开两个虚拟机,内存要给2G,2个cpu,计算的较快
什么是gitlab:
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
什么是Jenkins:
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
两者结合的优势:
这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码
在一个虚拟机安装gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
yum install -y gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm##他会自动解决一些依赖性,比如说 curl policycoreutils-python openssh-server
###检查firewalld selinux ,iptables ,解析
cd /etc/gitlab/
vim gitlab.rb
ternal_url 'http://172.25.17.11"
gitlab-ctl reconfigure ##改完配置文件之后,一定要刷一下
gitlab-ctl tail
yum install -y net-tools #下载查看网关的工具
gitlab-ctl status ##查看开启的状态
在gitlab中创建项目
登陆浏览器http://172.25.17.11
首先进去会让你修改密码,然后会再次进行登陆,我们可以修改语言,将其设置为中文,settings--->profile--->languages-->简体中文--->刷新
和github的设置差不多,我们建立一个project--->起名字---》私有--》初始化---》setting--->ssh keys--->粘贴公钥(和以前的公钥保持一致)--》进入我们的项目--》复制克隆地址--》进入到shell-->git clone 克隆地--->ls(在原来的机子中做)
###在另外开的第二个虚拟机中做
###检查firewalld selinux ,iptables ,解析
下载docker,记得要删去就版本
yum install *
systemctl start docker
docker load -i registry
docker load -i nginx:v1
docker run -d --name registry -p 5000:5000 registry:2.3.1
docker ps
chmod 777 /var/run/docker.sock
yum install git
yum install jenkins-2.121.3-1.1.noarch,rpm jdk-8u171-linux-x64.rpm
systemctl start jenkins
route add default gw 172.25.17.250
route -n ##把真机变成路由,虚拟机上网
vim /etc/resolv.conf
nameserver 114.114.114.114
##进入到浏览器里
http://172.25.17.12:8080
解锁jenkins他会告诉你一个地址,我们去获取密钥,接着下载插件,但这前提是虚拟机必须能上网,如果经常报错,多次重试就可以了,如果点不进去,我们就关闭服务,开启服务试一下,应该就能进去,接着就是安装插件了,安装完成以后,就可以建立工程了
输入一个任务名称(hitlab)--》选择构建一个自由风格的软件项目--》源码管理选择git-->URL 去gitlab复制地址--》填加证书--》类型为ssh类型--》选择私钥(复制斯钥)--》用户名填写root-->构建触发器选择轮询,日程表为*****--》构建选择shell(执行ls -l)-->保存
然后我们在shell里面做,在原来的目录下做
vim index.html
git add index.html
git commit -m "v1"
git push -u origin master
##然后我们在gitlab里面看到上传的文件,在jenkins看到控制台输出为成功,
##我们要和gitlab连动起来,只要jitlab改变,我们jenkins就会接受到通知,立马进行相应
系统管理--->管理插件--》可选插件--》gitlab-->安装--->然后我们在进入我们的课题--》配置--》构建触发器选择是时触发,并且创造一个密码,复制地址和密码,到gitlab进行粘贴,让他们两个连动起来--》
gitlab--> 设置--》外发请求,选择允许,保存改变
gitlab -》设置,导入所有仓库,---》粘贴密钥和URL,触发器选择所有--》
###我们在shell里面新建一个文件,并提交,可以看见控制台有输出
vim index.html
git add index.html
git commit -m "change v1"
git push -u origin master
####和docker连接起来
系统管理---》插件配置---》可选插件---》docker,cloudbees docker build and publish --->安装--》
再次创建一个课题docker,选择自由风格---》源码管理无--》构建触发器,其他工程构建后触发--》关注的项目为gitlab-->构建(nginx,${BUILD_NUMBER} unix:///var/run/docker.sock http://locahost:5000,取消强行拉区-->保存
cd /demo
vim Deckerfile
FROM nginx
COPY index.html /usr/share/nginx/html
git add Dockerfile
git commit -m " add dockerfile"
git push -u origin master
#####在server2上面
vim /etc/sudoers
jenkins ALL=(ALL) NOPASSWD: ALL
构建-->
sudo docker ps | grep nginx && docker rm -f nginx
sudo docker run -d --name nginx rhel7
docker ps ##发现有进程在跑
curl ##进程号码