GitLab的基础使用-客户端克隆(Clone)代码的两种方式
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.准备环境
博主推荐阅读: https://www.cnblogs.com/yinzhengjie2020/p/12446201.html
二.基于HTTP协议进行克隆实战案例
1>.安装git命令

[root@dbus01.yinzhengjie.org.cn ~]# yum -y install git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.sjtu.edu.cn base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 mysql-connectors-community | 2.5 kB 00:00:00 mysql-tools-community | 2.5 kB 00:00:00 mysql57-community | 2.5 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): extras/7/x86_64/primary_db | 164 kB 00:00:00 (2/2): updates/7/x86_64/primary_db | 6.7 MB 00:00:03 Resolving Dependencies --> Running transaction check ---> Package git.x86_64 0:1.8.3.1-21.el7_7 will be installed --> Processing Dependency: perl-Git = 1.8.3.1-21.el7_7 for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: rsync for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Git) for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Error) for package: git-1.8.3.1-21.el7_7.x86_64 --> Running transaction check ---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed ---> Package perl-Git.noarch 0:1.8.3.1-21.el7_7 will be installed ---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed ---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================================================================================================================================== Installing: git x86_64 1.8.3.1-21.el7_7 updates 4.4 M Installing for dependencies: perl-Error noarch 1:0.17020-2.el7 base 32 k perl-Git noarch 1.8.3.1-21.el7_7 updates 55 k perl-TermReadKey x86_64 2.30-20.el7 base 31 k rsync x86_64 3.1.2-6.el7_6.1 base 404 k Transaction Summary ============================================================================================================================================================================================================================================================================== Install 1 Package (+4 Dependent packages) Total download size: 4.9 M Installed size: 23 M Downloading packages: (1/5): perl-Error-0.17020-2.el7.noarch.rpm | 32 kB 00:00:00 (2/5): rsync-3.1.2-6.el7_6.1.x86_64.rpm | 404 kB 00:00:00 (3/5): perl-TermReadKey-2.30-20.el7.x86_64.rpm | 31 kB 00:00:00 (4/5): perl-Git-1.8.3.1-21.el7_7.noarch.rpm | 55 kB 00:00:00 (5/5): git-1.8.3.1-21.el7_7.x86_64.rpm | 4.4 MB 00:00:01 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 3.1 MB/s | 4.9 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:perl-Error-0.17020-2.el7.noarch 1/5 Installing : rsync-3.1.2-6.el7_6.1.x86_64 2/5 Installing : perl-TermReadKey-2.30-20.el7.x86_64 3/5 Installing : perl-Git-1.8.3.1-21.el7_7.noarch 4/5 Installing : git-1.8.3.1-21.el7_7.x86_64 5/5 Verifying : git-1.8.3.1-21.el7_7.x86_64 1/5 Verifying : 1:perl-Error-0.17020-2.el7.noarch 2/5 Verifying : perl-TermReadKey-2.30-20.el7.x86_64 3/5 Verifying : perl-Git-1.8.3.1-21.el7_7.noarch 4/5 Verifying : rsync-3.1.2-6.el7_6.1.x86_64 5/5 Installed: git.x86_64 0:1.8.3.1-21.el7_7 Dependency Installed: perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-21.el7_7 perl-TermReadKey.x86_64 0:2.30-20.el7 rsync.x86_64 0:3.1.2-6.el7_6.1 Complete! [root@dbus01.yinzhengjie.org.cn ~]#
2>.如下图所示,点击拷贝HTTP的URL
3>.使用git命令clone远程代码到本地
[root@dbus01.yinzhengjie.org.cn ~]# git clone http://gitlab201.yinzhengjie.org.cn/china_bigdata/cmdb.git Cloning into 'cmdb'... Username for 'http://gitlab201.yinzhengjie.org.cn': jason #这里需要输入用权限访问该项目的用户名称 Password for 'http://jason@gitlab201.yinzhengjie.org.cn': #这里需要输入有权限访问该项目的用户密码 remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. [root@dbus01.yinzhengjie.org.cn ~]#
三.基于SSH协议进行克隆实战案例
1>.生成密钥对
[root@jenkins-master210.yinzhengjie.org.cn ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa Generating public/private rsa key pair. Created directory '/root/.ssh'. 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:SObkCucWAkDjRBUQXYKUZjdvADlHdOi3Mm+R0HUgtks root@jenkins-master210.yinzhengjie.org.cn The key's randomart image is: +---[RSA 2048]----+ |=X%*+= .. | |+B.B+ o. . | |+.= =E= . | | . o.@.. | | o *.* S | | B * | | B . | | . o | | . | +----[SHA256]-----+ [root@jenkins-master210.yinzhengjie.org.cn ~]# [root@jenkins-master210.yinzhengjie.org.cn ~]# ll ~/.ssh/ total 8 -rw------- 1 root root 1675 Mar 14 02:32 id_rsa -rw-r--r-- 1 root root 423 Mar 14 02:32 id_rsa.pub [root@jenkins-master210.yinzhengjie.org.cn ~]# [root@jenkins-master210.yinzhengjie.org.cn ~]# cat ~/.ssh/id_rsa.pub #我们需要将这个公钥信息上传到GitLab上 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyJxyrrvqA3JyEl97EymsxNugtxJrN0hs1/lfrn+OSnOGupnINNCEDx8o0SmRs7OYJVuEtr3z/b0pNprSqnOHsYCYrDfbYOhYEBg+xcgc7c+4roEFdXGoYS2qcJODuSAKnbmTvs ueM4DuSX2hnRJEyBElxLww287lvYuGQo7zrgcqtJ2IJGR/O8gRSfPPTelFhJDK7FMjTIHpw7J+wy3W23Qtf+QJt6yIZRYqfxqTur4n0byea618rTQ2AwUbLdt0KeL6QRGypOuAFOknTZObGP2pP76d34K6aU+759XgYVnesQ/q3yy
/idJNxvzzXTDFjLnk5+P1y3Cb6Ig1lnoKX root@jenkins-master210.yinzhengjie.org.cn
[root@jenkins-master210.yinzhengjie.org.cn ~]#
2>.点击用户头像,选择"Settings"
3>.将第1步骤生成的公钥信息贴在jason用户的"SSH Keys"里面,如下图所示
4>.公钥添加成功
5>.查看项目的详细信息
6>.选择基于SSH协议克隆的URL
7>.在第1步骤中的服务器上执行克隆操作

[root@jenkins-master210.yinzhengjie.org.cn ~]# yum -y install git Loaded plugins: fastestmirror Determining fastest mirrors * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): extras/7/x86_64/primary_db | 164 kB 00:00:00 (2/2): updates/7/x86_64/primary_db | 6.7 MB 00:00:01 Resolving Dependencies --> Running transaction check ---> Package git.x86_64 0:1.8.3.1-21.el7_7 will be installed --> Processing Dependency: perl-Git = 1.8.3.1-21.el7_7 for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: rsync for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Git) for package: git-1.8.3.1-21.el7_7.x86_64 --> Processing Dependency: perl(Error) for package: git-1.8.3.1-21.el7_7.x86_64 --> Running transaction check ---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed ---> Package perl-Git.noarch 0:1.8.3.1-21.el7_7 will be installed ---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed ---> Package rsync.x86_64 0:3.1.2-6.el7_6.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================================= Installing: git x86_64 1.8.3.1-21.el7_7 updates 4.4 M Installing for dependencies: perl-Error noarch 1:0.17020-2.el7 base 32 k perl-Git noarch 1.8.3.1-21.el7_7 updates 55 k perl-TermReadKey x86_64 2.30-20.el7 base 31 k rsync x86_64 3.1.2-6.el7_6.1 base 404 k Transaction Summary ============================================================================================================================================================================= Install 1 Package (+4 Dependent packages) Total download size: 4.9 M Installed size: 23 M Downloading packages: (1/5): perl-Error-0.17020-2.el7.noarch.rpm | 32 kB 00:00:00 (2/5): perl-TermReadKey-2.30-20.el7.x86_64.rpm | 31 kB 00:00:00 (3/5): rsync-3.1.2-6.el7_6.1.x86_64.rpm | 404 kB 00:00:00 (4/5): perl-Git-1.8.3.1-21.el7_7.noarch.rpm | 55 kB 00:00:00 (5/5): git-1.8.3.1-21.el7_7.x86_64.rpm | 4.4 MB 00:00:01 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 2.4 MB/s | 4.9 MB 00:00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:perl-Error-0.17020-2.el7.noarch 1/5 Installing : rsync-3.1.2-6.el7_6.1.x86_64 2/5 Installing : perl-TermReadKey-2.30-20.el7.x86_64 3/5 Installing : perl-Git-1.8.3.1-21.el7_7.noarch 4/5 Installing : git-1.8.3.1-21.el7_7.x86_64 5/5 Verifying : git-1.8.3.1-21.el7_7.x86_64 1/5 Verifying : 1:perl-Error-0.17020-2.el7.noarch 2/5 Verifying : perl-TermReadKey-2.30-20.el7.x86_64 3/5 Verifying : perl-Git-1.8.3.1-21.el7_7.noarch 4/5 Verifying : rsync-3.1.2-6.el7_6.1.x86_64 5/5 Installed: git.x86_64 0:1.8.3.1-21.el7_7 Dependency Installed: perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-21.el7_7 perl-TermReadKey.x86_64 0:2.30-20.el7 rsync.x86_64 0:3.1.2-6.el7_6.1 Complete! [root@jenkins-master210.yinzhengjie.org.cn ~]#