git代码仓库与githab远程仓库

补充知识:
如何更改浏览器的语言
选择浏览器的长方向,选择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  ..     ##退出主分枝,

git代码仓库与githab远程仓库_第1张图片
 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"

git代码仓库与githab远程仓库_第2张图片
 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,发现他修改了文件,并放在了暂存区

git代码仓库与githab远程仓库_第3张图片
 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

git代码仓库与githab远程仓库_第4张图片
 1042 git  commit  -m "change  readme.txt"##一次性可以提高多个放在暂存区的文件

git代码仓库与githab远程仓库_第5张图片
 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   ##什么都不会显示

git代码仓库与githab远程仓库_第6张图片
 1055  git  log   ##查看日志,发现自己做过的步骤
 1056  cd
 1057  l.
 1058  cat    .gitconfig ###查看自己设置的用户名和email

git代码仓库与githab远程仓库_第7张图片
 1059  cd  git/
 1064  git  log  --pretty=oneline  ##可以查看简约的日志
 1066  git   reflog   ##一个更简单的的日志

git代码仓库与githab远程仓库_第8张图片
 1067  git  reset  --hard  HEAD^  ##我们将步骤返回到上一部
 1068  git   reflog
 1069  ls   ##我们发现删除的文件回来了

git代码仓库与githab远程仓库_第9张图片
 1070  git  reset   --hard  0532c3c  ##我们也可以直接指向返回的命令的指针
 1071  ls  ##发现回来的文件又被删除了
 1073  git    reflog

git代码仓库与githab远程仓库_第10张图片
 1075  vim  readme.txt  ##又对文件进行了修改
 1076  git  status  -s
 1077  git  status  ##他会提示你是要加入,还是要撤回,

git代码仓库与githab远程仓库_第11张图片
 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代码仓库与githab远程仓库_第12张图片
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,填加就好了。

git代码仓库与githab远程仓库_第13张图片
 1089  cd
 1090  cd  git/
 git push -u origin master ##接下来就可以免密执行了,从本地上传从远程仓库中抓取,虚拟机要能上网

git代码仓库与githab远程仓库_第14张图片
5.忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
touch    .test   ##建立一个隐藏文件
git   status   -s  ##发现这个隐藏文件是未跟踪文件
vim    .gitignore  ##我们进去写忽略模式,(.*),发现这个隐藏文件不再是未跟踪文件,不见了,我们在职场中可以根据自己的需求,进行隐藏相应的文件
git   status   -s

git代码仓库与githab远程仓库_第15张图片
我们进入到浏览器,重新建立一个自己的课题,记得一定要初始化,进入到自己创建的课题里,我们发现自己拉区的文件在浏览器有所显示,我们也可以在浏览器进行科隆或者下载,我们选择用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  

git代码仓库与githab远程仓库_第16张图片

git代码仓库与githab远程仓库_第17张图片

###需要另外开两个虚拟机,内存要给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"

git代码仓库与githab远程仓库_第18张图片

git代码仓库与githab远程仓库_第19张图片
gitlab-ctl   reconfigure  ##改完配置文件之后,一定要刷一下
gitlab-ctl  tail
yum  install  -y  net-tools #下载查看网关的工具
gitlab-ctl  status   ##查看开启的状态
在gitlab中创建项目
登陆浏览器http://172.25.17.11
首先进去会让你修改密码,然后会再次进行登陆,我们可以修改语言,将其设置为中文,settings--->profile--->languages-->简体中文--->刷新

git代码仓库与githab远程仓库_第20张图片
和github的设置差不多,我们建立一个project--->起名字---》私有--》初始化---》setting--->ssh  keys--->粘贴公钥(和以前的公钥保持一致)--》进入我们的项目--》复制克隆地址--》进入到shell-->git clone 克隆地--->ls(在原来的机子中做)

git代码仓库与githab远程仓库_第21张图片

git代码仓库与githab远程仓库_第22张图片
###在另外开的第二个虚拟机中做
###检查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)-->保存

git代码仓库与githab远程仓库_第23张图片

git代码仓库与githab远程仓库_第24张图片

然后我们在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   ##进程号码

 

 

 

你可能感兴趣的:(git代码仓库与githab远程仓库)