Gitlab 2.2:项目代码 Clone 与 Push

2.2:项目代码 Clone 与 Push

假设yqc用户是一名开发,目前要为test-software下的test-app1编写代码。
其使用的客户端PC地址为node111(192.168.1.111)。

在这里插入图片描述

2.2.1:Clone 项目

2.2.1.1:Clone with HTTP
2.2.1.1.1:复制项目的 HTTP 克隆链接

使用yqc用户登录gitlab,进入test-software/test-app1项目页面,复制HTTP克隆连接。

在这里插入图片描述

2.2.1.1.2:客户端 git clone

在客户端主机上执行克隆命令:

单独创建一个工作目录,用于代码克隆和上传。

root@node111:~# mkdir /workspace
root@node111:~# cd /workspace/

root@node111:/workspace# git clone http://192.168.1.121/test-software/test-app1.git
Cloning into 'test-app1'...
Username for 'http://192.168.1.121': yqc
Password for 'http://yqc@192.168.1.121': 
warning: You appear to have cloned an empty repository.

因为是个空白项目,所以会有提示:You appear to have cloned an empty repository.

2.2.1.2:Clone with SSH

SSH 克隆需要事先将客户端的公钥添加到Gitlab。这样,克隆私有和内部项目、上传代码时就不需要输入用户名和密码了。

2.2.1.2.1:客户端创建 SSH 密钥对

生成ssh密钥对:

root@node111:~# ssh-keygen 

选项保持默认即可,生成的密钥对存放在当前用户家目录的.ssh/目录中:

其中,
id_rsa为私钥,保存在本机,用于验证公钥;
id_rsa.pub为公钥,传送给对端,在加密通信时提供,以此验证身份。

root@node111:~# ll /root/.ssh
total 16
drwx------  2 root root 4096 Apr 23 14:09 ./
drwx------ 11 root root 4096 Apr 23 14:09 ../
-rw-------  1 root root 1679 Apr 23 14:09 id_rsa
-rw-r--r--  1 root root  402 Apr 23 14:09 id_rsa.pub
2.2.1.2.2:为 Gitlab 用户添加 SSH Key

这里添加的是客户端的公钥。

root@node111:~# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDASlumUB3sH81YLr+ZpN4SPU/1Q6Y522WZ4UaZX8p7pJbWXpmM3soUW6+0CF3w/EYQumjbWbnkYLVBXgoHGLohGgT+mc13dRc2jI7OGIxym2HdY/RzDefa7IdWZxFmy8B6+kw3VoiOGMb8GS3yC6KiKFwwCZCh5EBg7x4+6NRkyMsWaj1VZqFQpUDU8QUtRW4oAMmitIAC/k2xxBrW9pSomfqy5gi6m1hEk6VrDp2NnuyTpeTwBKShPV79tcZ+ciJztdSXUPpJLohjQB4DojNeaUw5DQZfOwedJ/7z9YxolkPD8M0RNqXV0xucyCDLANeChv+v0YZtukE/WMATpBG3 root@node111.yqc.com

使用yqc用户登录Gitlab,进入用户设置:

在这里插入图片描述

点击SSH Keys,添加公钥。

在这里插入图片描述

2.2.1.2.3:复制项目的 SSH 克隆链接

在这里插入图片描述

2.2.1.2.4:客户端 git clone

首次使用密钥克隆,需要输入yes确认,之后就不用了。

root@node111:/opt# git clone git@192.168.1.121:test-software/test-app1.git

Cloning into 'test-app1'...
The authenticity of host '192.168.1.121 (192.168.1.121)' can't be established.
ECDSA key fingerprint is SHA256:7axVWAVMgqQAAr3voX79pFVkb0zNywL1j+eKpbtJVac.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.121' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.

2.2.2:Push 项目

对项目代码进行编辑并上传至Gitlab的步骤为:

编辑代码 --> git add 加入暂存区 --> git commit 提交到本地代码仓库 --> git push 提交到 Gitlab 仓库。

整个过程涉及了这样几个区域:

  • 工作区:Clone下来的代码存放目录(或者是开发者编写代码所在的目录),通常是以Project名称命名的目录。

  • 暂存区:对修改后的代码进行暂时存储的地方,使用git add命令将修改后的代码从工作区转移到暂存区。

  • 本地仓库:本地的代码仓库,同样具有版本控制功能,使用git commit将暂存区的代码提交到本地仓库。
    可以理解为针对开发个人的git仓库。

    Gitlab相当于是一个分布式的版本控制系统,在客户端本地同样具有版本控制功能,用户在没有网络的情况下,可以先将代码提交到本地,在有网络时再将本地提交的代码同步上传至Gitlab服务端。

  • 远程仓库:Gitlab服务端的代码仓库。
    可以理解为针对多个开发的git仓库,实现多个开发协作。

在这里插入图片描述

2.2.2.1:修改项目代码

这里只为项目编辑一个index页面,来进行演示。

进入项目工作目录,编辑一个页面文件并保存:

使用 v1 标识版本。

root@node111:~# cd /workspace/test-app1/
root@node111:/workspace/test-app1# vim index.html
<h1> testapp-1 page v1 </h1>
2.2.2.2:git add 将代码放入暂存区

将当前目录中的代码文件放入暂存区:

root@node111:/workspace/test-app1# git add .
2.2.2.3:git commit 将代码提交到本地仓库

提交时,需要使用-m指定提交信息,即对本次提交的版本说明。

root@node111:/workspace/test-app1# git commit -m "v1"

[master (root-commit) e6531ba] v1
 1 file changed, 1 insertion(+)
 create mode 100644 index.html
2.2.2.4:git push 将代码上传至 Gitlab 服务端

输入yqc用户及密码,将代码上传至 Gitlab 的对应项目中。

默认提交到的是master分支。

root@node111:/workspace/test-app1# git push
Username for 'http://192.168.1.121': yqc
Password for 'http://yqc@192.168.1.121': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 233 bytes | 233.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.1.121/test-software/test-app1.git
 * [new branch]      master -> master
2.2.2.5:Web 端验证代码上传结果

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值