gitlab的网络仓库gitee和本地仓库gitlab

  • 一、前言
  • 一、简介
  • 二、Git的分区方式
  • 二、git的使用
  • 一、基本使用
  • 二、撤销操作
  • 三、恢复删除
  • 三、网络仓库
  • 四、私有化仓库Gitlab的安装


一、前言

一、简介

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

二、Git的分区方式

有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。

已修改表示修改了文件,但还没保存到数据库中。

已提交表示数据已经安全地保存在本地数据库中

已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

gitlab 地址乱码 gitlab dev 21vianet_工作区


三、实验环境

将用server12(172.25.42.12)实验gitee网络仓库,server11(172.25.42.11)搭建本地的gitlab本地仓库。

二、git的使用

一、基本使用

1、开启虚拟机,下载git,初始化git
创建工作目录demo,初始化版本库,现在demo目录就是存放版本的版本库,.git目录是git跟踪管理版本库的,不要乱动。git命令必须在版本库中使用,出去就不顶用了,因为信息都记录在版本库中

[root@server12 demo] yum install git
[root@server12 ~] mkdir demo
[root@server12 ~] cd demo/
[root@server12 demo] git init

gitlab 地址乱码 gitlab dev 21vianet_持续集成_02


2、创建用户,注册邮箱

[root@server11 demo] git config --global user.name "ck"
[root@server11 demo] git config --global user.email ck@westos.org

gitlab 地址乱码 gitlab dev 21vianet_持续集成_03


3、建立文件,查看状态变化

[root@server12 demo] touch README.md           建立任意文件
[root@server12 demo] git status                第一种查看文件方式
[root@server12 demo] git status -s             第二种查看文件方式、简化输出

可以看到文件处于暂存区的状态

gitlab 地址乱码 gitlab dev 21vianet_工作区_04


4、add传至工作区

[root@server12 demo] git add README.md 
[root@server12 demo] git statu -s

此时A状态表示为被添加至工作区

gitlab 地址乱码 gitlab dev 21vianet_git_05


5、commit传至git目录(必须已经建立账户和密码)

特定上传一个文件,否则会将整个暂存区的东西都上传

[root@server12 demo] git commit -m "add readme.md"   不分大小写
[root@server12 demo] git statu -s

此时git不存在任何新改变,没有输出

gitlab 地址乱码 gitlab dev 21vianet_工作区_06


6、修改初始文件,给予内容

[root@server12 demo] echo westos > README.md 
[root@server12 demo] git status -s
[root@server12 demo] git status

M在右边,表示文件修改过,在暂存区

gitlab 地址乱码 gitlab dev 21vianet_持续集成_07


7、再次上传至工作区

M在左边,表示文件修改过,在工作区

[root@server12 demo] git add README.md 
[root@server12 demo] git status 
[root@server12 demo] git status -s

gitlab 地址乱码 gitlab dev 21vianet_持续集成_08


8、上传至目录

git会对文件进行监控,同一个文件上传至目录时用update,此时没有文件状态改变

gitlab 地址乱码 gitlab dev 21vianet_git_09


注意无论怎么更改工作区的文件,上传至目录的只有暂存区的文件

二、撤销操作

1、工作区使用checkout撤销之前的操作
恢复到工作区修改之前的版本

[root@server12 demo] git checkout README.md

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_10


2、暂存区的撤销

修改内容,即使添加至暂存区,也可以在暂存区用reset HEAD撤销,再到工作区用checkout撤销

这里更改工作区的内容,上传至暂存区,再两次撤销即可恢复原样。

[root@server12 demo] git reset HEAD README.md 
[root@server12 demo] git checkout README.md

gitlab 地址乱码 gitlab dev 21vianet_暂存区_11

三、恢复删除

1、工作区删除文件的恢复
工作区删除文件也可以恢复,同样的checkout命令

[root@server12 demo] git checkout README.md

gitlab 地址乱码 gitlab dev 21vianet_暂存区_12


2、暂存区里删除的恢复

提交到暂存区后,删除后。可以在暂存区和工作区分别恢复一下,即可恢复我们的文件

[root@server12 demo] git reset HEAD README.md
[root@server12 demo] git checkout README.md

gitlab 地址乱码 gitlab dev 21vianet_暂存区_13

三、网络仓库

git结合网络仓库gitee使用,也可以结合github使用,因为github网络较为卡顿,所以使用网络仓库gitee作为例子(国内版)

1、新建用户

2、建立私有仓库

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_14


生成公钥

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_15


导入公钥

gitlab 地址乱码 gitlab dev 21vianet_暂存区_16

gitlab 地址乱码 gitlab dev 21vianet_git_17

gitlab 地址乱码 gitlab dev 21vianet_持续集成_18


上传文件

gitlab 地址乱码 gitlab dev 21vianet_工作区_19


上传文件

git remote add origin git@gitee.com:kang-chen-westos/demo.git   连接远程仓库
git push -u origin master                                       上传文件

上传成功

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_20


查看文件,发现上传成功。

gitlab 地址乱码 gitlab dev 21vianet_工作区_21

四、私有化仓库Gitlab的安装

server11作为仓库,安装gitlab

获取安装包

gitlab 地址乱码 gitlab dev 21vianet_git_22


获取地址为 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

1、安装

[root@server11 mnt]# yum install -y curl policycoreutils-python openssh-server
[root@server11 mnt]# yum install -y gitlab-ce-14.1.2-ce.0.el7.x86_64.rpm

2、修改配置文件

vim /etc/gitlab/gitlab.rb

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_23


重新载入服务

gitlab-ctl reconfigure

进行访问172.25.42.11发现需要密码

gitlab 地址乱码 gitlab dev 21vianet_工作区_24


查看登陆密码

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_25

进入后用户为root,密码为刚才查看的密码

gitlab 地址乱码 gitlab dev 21vianet_git_26

中文的设定方式,应用后刷新,重新进入即可

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_27


进去后重新设置自己的密码。

gitlab 地址乱码 gitlab dev 21vianet_工作区_28

设置密钥连接

[root@server11 ~] ssh-keygen 
[root@server11 ~] cd .ssh/
[root@server11 .ssh] ls
id_rsa  id_rsa.pub
[root@server11 .ssh] cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6E8tixpTldgCDSY/i4zR/VlipgAsmzr+73g5VN4q15DtzTUjORZS5WfMXSSzI9VfXLEd6MB9L0sdYJFJKcutKJb2j6zYDKOVCW/5Nq+siqP4Vd5K3+fsI4n5xtfKTRri6Ek2aSX3u+D6ZIXAifQDptBgorVg2xFkDF+8BhLKiskiC3dflP46FD9eek+Xe6pbfC5tTe7p+v61qnBmePS+1OYkuUxRyeKp2WAt1ktXempA+5ayTIFlZWq/ZjHbyW4+mYfjf+gUSZ5W/Yt9bHwgikz7Uhqmr8gtHuw4WXaZMmISGDJFZCLp/INplWvGxH722r1hK2J6LktfMee0ds0rP root@server11

复制公钥给gitlab

gitlab 地址乱码 gitlab dev 21vianet_gitlab 地址乱码_29

gitlab 地址乱码 gitlab dev 21vianet_暂存区_30


gitlab 地址乱码 gitlab dev 21vianet_持续集成_31


gitlab 地址乱码 gitlab dev 21vianet_持续集成_32


server11安装git,建立连接

gitlab 地址乱码 gitlab dev 21vianet_暂存区_33

[root@server11 .ssh] yum install git
[root@server11 ~] git clone git@172.25.42.11:root/demo.git    复制得到

ssh成功建立连接

gitlab 地址乱码 gitlab dev 21vianet_持续集成_34


通过ssh克隆,可以发现帮你在/root生成了一个demo目录,进入目录,拉取了README.md

[root@server11 ~] cd demo/
[root@server11 demo] ls
README.md
[root@server11 demo] git remote -v
origin	git@172.25.42.11:root/demo.git (fetch)
origin	git@172.25.42.11:root/demo.git (push)

上传
Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上-a选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

首先在demo目录中创建了一个index.html文件,提交到版本库,然后push上传到gitlab

[root@server11 demo] git config --global user.name "ck"
[root@server11 demo] git config --global user.email ck@westos.org
[root@server11 demo] git commit -a -m "add index.html"
# On branch main
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	index.html
nothing added to commit but untracked files present (use "git add" to track)
[root@server11 demo] git add index.html
[root@server11 demo] git status
# On branch main
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   index.html
#
[root@server11 demo] git status -s
A  index.html
[root@server11 demo] git commit -m "index.html"
[main c71496d] index.html
 1 file changed, 1 insertion(+)
 create mode 100644 index.html