企业运维----持续集成与持续交付-git工具使用、gitlab代码仓库、jenkins持续集成


Git简介

  1. Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件

Git也是目前最流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。

  1. 版本控制系统简介

    本地版本控制系统
    请添加图片描述集中化的版本控制系统
    请添加图片描述分布式版本控制系统请添加图片描述

  2. Git特点:
    • 速度
    • 简单的设计
    • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
    • 完全分布式
    • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量

  3. Git状态
    Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
    • 已修改表示修改了文件,但还没保存到数据库中。
    • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快 照中。
    • 已提交表示数据已经安全地保存在本地数据库中。
    请添加图片描述
    这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。

git工具使用

安装git

[root@server1 ~]# yum install -y git 

配置用户名和邮箱

[root@server1 demo]# git config --global user.email "chen.com"
[root@server1 demo]# git config --global user.name "chen"
[root@server1 demo]# git config --global user.name
chen
[root@server1 demo]# git config --global user.email
chen.com

获取Git配置信息

[root@server1 demo]# git config --list
user.email=chen.com
user.name=chen
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

创建工作目录

[root@server1 ~]# mkdir demo
[root@server1 ~]# cd demo/
[root@server1 demo]# ls -a
.  ..

初始化git

[root@server1 demo]# git init
Initialized empty Git repository in /root/demo/.git/
[root@server1 demo]# ls -a
.  ..  .git  readme.md
[root@server1 demo]# cd .git/
[root@server1 .git]# ls
branches  config  description  HEAD  hooks  info  objects  refs

创建测试文件 README.md 查看状态

[root@server1 demo]# touch README.md
[root@server1 demo]# ls
README.md
[root@server1 demo]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	README.md
nothing added to commit but untracked files present (use "git add" to track)

添加工作区文件到暂存区

[root@server1 demo]# git status -s
?? README.md
[root@server1 demo]# git add README.md 
[root@server1 demo]# git status -s
A  README.md

提交暂存区的文件

[root@server1 demo]# git commit  -m "add README.md"
[master (root-commit) 5b85da5] add README.md
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
[root@server1 demo]# git status -s

修改工作区的文件,查看状态,M为红色且靠右

[root@server1 demo]# echo hello >> README.md 
[root@server1 demo]# git status -s
 M README.md

提交到暂存区后再次查看,M为绿色且靠做

[root@server1 demo]# git add README.md 
[root@server1 demo]# git status -s
M  README.md

全部提交

[root@server1 demo]# git commit -m "update README.md"
[master 3fff37a] update README.md
 1 file changed, 1 insertion(+)
[root@server1 demo]# git status -s

撤销

[root@server1 demo]# cat README.md 
hello
[root@server1 demo]# echo westos >> README.md 
[root@server1 demo]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@server1 demo]# git status -s 
 M README.md
[root@server1 demo]# git checkout -- README.md 
[root@server1 demo]# cat README.md 
hello

删除 README.md

[root@server1 demo]# rm -f README.md 
[root@server1 demo]# git status -s 
 D README.md
[root@server1 demo]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    README.md
#
no changes added to commit (use "git add" and/or "git commit -a")

恢复README.md

[root@server1 demo]# git reset
Unstaged changes after reset:
D	README.md
[root@server1 demo]# git checkout  -- README.md
[root@server1 demo]# ls
README.md
[root@server1 demo]# cat README.md 
hello

版本回溯

[root@server1 demo]# git reflog
458f92a HEAD@{
   0}: commit: delete README.md
3fff37a HEAD@{
   1}: commit: update README.md
5b85da5 HEAD@{
   2}: commit (initial): add README.md
[root@server1 demo]# ls
[root@server1 demo]# git reset --hard 3fff37a
HEAD is now at 3fff37a update README.md
[root@server1 demo]# ls
README.md
[root@server1 demo]# cat README.md 
hello

[root@server1 demo]# git reset --hard 5b85da5
HEAD is now at 5b85da5 add README.md
[root@server1 demo]# ls
README.md
[root@server1 demo]# cat README.md 

github远程仓库搭建

登陆github后新建仓库
请添加图片描述
请添加图片描述
选择ssh
请添加图片描述
生成密钥并把公钥复制到github的sshkey

[root@server1 demo]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:EjUJYuuI88agft/bsvkQkeCUOkWbuUFMvD9e9b1NeEg root@server1
The key's randomart image is:
+---[RSA 2048]----+
|    B*o.o.       |
|   .+B=.o.       |
|    +*oo         |
| . = .o..  .  E  |
|+ . o.o.S . ...o |
|.=     +..   .o.o|
|. +   ..o      oo|
|.. .  .o+      ..|
| .. .. ==o       |
+----[SHA256]-----+
[root@server1 demo]# ls
README.md
[root@server1 demo]# cd /home/
[root@server1 home]# ls
[root@server1 home]# cd /root/.ssh/
[root@server1 .ssh]# ls
id_rsa  id_rsa.pub
[root@server1 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3dUhX58vDw/MBWKx72rOr26PFq2aTMsG81tO7qkX1T6fTjmfYuDkm+bX+c3WjDWstcJ3dYEUhMWNHsonphhHBtOXGxrg7SOrXAZIC44hF4JpiSu8Wz06nnmV8ApQU+BdCfcPG/6s6s7YxGn9SSRUVCruDpr/tR6fUaI+LRrLKlMSY3bSbW86DMLP114LhIzljXyWLfpugj65+GiNScIK4xEUT0EiA2IitD0i4nHJzdjEhoNKy/zHVaP+faBWaDMwexmuiiBuCP89R9OAnsmybvtpzt6aD/dfmdiwhWUwqCkezFYEXTf5G2t07ZK2otpkoQzAX22x2wFgxzHq47Di3 root@server1

请添加图片描述

添加远程仓库

[root@server1 demo]# git remote -v
[root@server1 demo]# git remote add origin [email protected]:C1304663149/demo.git
[root@server1 demo]# git remote -v
origin	git@github.com:C1304663149/demo.git (fetch)
origin	git@github.com:C1304663149/demo.git (push)

上传

[root@server1 demo]# git push -u origin main
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
Counting objects: 3, done.
Writing objects: 100% (3/3), 201 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:C1304663149/demo.git
 * [new branch]      main -> main
Branch main set up to track remote branch main from origin.

再次进入demo可以看见 README.md
请添加图片描述

gitlab代码仓库

虚拟机server1,内存不小于4G

可以在国内镜像站下载el7的最新的gitlab安装包
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

下载gitlab的依赖

[root@server1 ~]# yum install -y curl policycoreutils-python openssh-server perl
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Package curl-7.29.0-51.el7.x86_64 already installed and latest version
Package policycoreutils-python-2.5-29.el7.x86_64 already installed and latest version
Package openssh-server-7.4p1-16.el7.x86_64 already installed and latest version
Package 4:perl-5.16.3-293.el7.x86_64 already installed and latest version
Nothing to do

安装gitlab安装包

[root@server1 ~]# rpm -ivh gitlab-ce-14.1.2-ce.0.el7.x86_64.rpm 
warning: gitlab-ce-14.1.2-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:gitlab-ce-14.1.2-ce.0.el7        ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值