Mac系统下Gitlab部署、使用的详细教程

  • 1、Gitlab部署前的准备工作
  • 2、gitLab 创建账户、Group(组)、Projects(项目)
  • 3、Gitlab通用配置
    • GIT最小配置(user.name , user.email)
    • 解决:Gitlab上出现“You won't be able to pull or push project code via SSH until you add an SSH key to you”
  • Gitlab通用执行命令

1、Gitlab部署前的准备工作

  1. 安装git模块;
    git – 简明指南官网:https://www.runoob.com/manual/git-guide/
    Mac系统下Gitlab部署、使用的详细教程-编程之家

备注: 下载、安装git OSX 版官方网址:http://git-scm.com/download/macMac系统下Gitlab部署、使用的详细教程-编程之家

Mac版下Homebrew模块安装

# 粘贴如下命令至cmd命令行,安装Homebrew模块(Paste that in a macOS Terminal or Linux shell prompt.)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2、gitLab 创建账户、Group(组)、Projects(项目)

模式一:Gitlab官网——注册账号

  1. 登录Gitlab官网:https://about.gitlab.com/,注册个人账号;
  2. 访问Gitlab网址,登录成功后,点击new project按钮,创建新项目;
    Mac系统下Gitlab部署、使用的详细教程-编程之家

备注:【Git】GitLab创建Group

  1. 输入所创建的项目名称、项目描述、选择权限(一般我选择private),也可从其他平台导入已有的项目;
    Mac系统下Gitlab部署、使用的详细教程-编程之家
  2. 点击create project,即可查看url,这里有两种–http(默认)和ssh(ssh后面介绍)
    Mac系统下Gitlab部署、使用的详细教程-编程之家

备注:Mac版本人在部署配置过程中,经测试发现使用HTTP协议,可以正常连接远程仓库;但SSH协议一直失败,原因不详。

  1. 项目创建完就可以根据自己的情况执行命令了。

模式二:Gitlab企业版——注册账号

  1. 一般由个人向企业提出申请,公司会在私有服务器上部署的Gitlab(备注:登录网址不再是https://about.gitlab.com/,而是公司内部的登录网址,如:http://gitlab.didi.cn/)中为你分配一个个人账号、登录密码;

接下来,操作步骤同上。

3、Gitlab通用配置

GIT最小配置(user.name , user.email)

如果没有进行配置会出现警示信息(user.name , user.email),具体配置需通过cmd命令实现。

备注: 之所以要进行配置就是在协同工作中,知道这个版本的开发与修改是谁做(user.name)的,而且从配置的邮箱中可以方便联系到你(user.email)。

GIT最小配置(user.name , user.email)执行命令:

# 修改配置
git config --global user.name "yourself_username"   # 备注:user.name为gitlab账户登录名中@之后的内容:张中国@zhangchina的user.name为“zhangchina”
git config --global user.email "youself_useremail@163.com"
# 查询是否配置成功:
git config --global --list

Mac系统下Gitlab部署、使用的详细教程-编程之家

解决:Gitlab上出现“You won’t be able to pull or push project code via SSH until you add an SSH key to you”

问题描述:第一次使用Gitlab时出现You won’t be able to pull or push project code via SSH until you add an SSH key to your profile (即:在您的配置文件中添加一个ssh密钥之前,您将无法通过ssh来拖动或推动项目代码):
Mac系统下Gitlab部署、使用的详细教程-编程之家

解决办法::首先确保电脑上安装了git:详细方法见上所示。

当git 安装好后:
1、在git中输入命令:$ cd ~/.ssh 检查是否生成过KEY;

  • 没有生成过key(~/.ssh文件夹下为空);
  • 生成过key(~/.ssh文件夹下显示有id_rsa.pub或者id_dsa.pub文件存在),直接进入第4步开始;

2、在git中输入命令:$ ssh-keygen -t rsa -C “你公司在GITLAB上的邮箱地址”,按下回车键(这个命令是生成key的);
Mac系统下Gitlab部署、使用的详细教程-编程之家
3、接下来,会提示输入载入key的文件夹位置,密码、确认密码,三次均直接会车,不输入命令;
Mac系统下Gitlab部署、使用的详细教程-编程之家
4、找到:生成的key目录(执行命令:cd ~/.ssh),发现新生成id_rsa.pub或者id_dsa.pub文件;
Mac系统下Gitlab部署、使用的详细教程-编程之家
5、在Gitlab上添加key:登陆gitlab网站:点击账号–点击Settings–点击SSH KEYS
Mac系统下Gitlab部署、使用的详细教程-编程之家
6、把刚生成的id_rsa.pub文件中的密钥全部粘贴至:keys中–点击add keys,添加成功。
Mac系统下Gitlab部署、使用的详细教程-编程之家
Mac系统下Gitlab部署、使用的详细教程-编程之家
添加key成功后显示:
Mac系统下Gitlab部署、使用的详细教程-编程之家

cmd窗口执行添加SSH秘钥的全过程:

# 切换至指定文件夹.ssh下
$ cd ~/.ssh    #查看ssh文件是否存在
# 生成key的执行命令
$ ssh-keygen -t rsa -C "isaac.zhu@dbappsecurity.com.cn"    #邮箱为公司的gitlab邮箱,生成KEY
# 中间提示保存文件夹路径、密码、确认密码,三次均直接回车即可:
>>>输出如下:
"""
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/longximg/.ssh/id_rsa):    //密钥的目录
Created directory '/c/Users/longximg/.ssh'.
Enter passphrase (empty for no passphrase):    //密码设置为空
Enter same passphrase again:
Your identification has been saved in /c/Users/longximg/.ssh/id_rsa.
Your public key has been saved in /c/Users/longximg/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:26He3Khz3tI1hREYImxaUoJny4FzzaQvevdeZlIrB8M isaac.zhu@dbappsecurity.com.cn //公钥
The key's randomart image is:
+---[RSA 3072]----+
|     o.*+ . .o.. |
|    + *o*. .. .  |
|     *.B       o |
|      +. .    . .|
|      . S E .  . |
|     . . + = .o  |
|    . . + +.*. . |
|     . o.+o@.    |
|        o*B.o    |
+----[SHA256]-----+"""
# 切换至.ssh文件夹下
$ cd ~/.ssh       //在次查看是否生成了ssh文件
$ ls -a   //显示ssh文件下的密钥文件id_rsa,id_rsa.pub是否存在
$ cat id_rsa.pub    //打开id_rsa.pub文件,复制密钥
>>>输出内容:
"""
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2bTU4NsV2xNR1l9d8C6cKGXBsV7aPnN2ZFJJstfw0PGD3OeSWk666G5WtmJq0f//XHFxbiEjgNW8OrIwPRrxzHlOMQGwAAxyunBSq+j/eITjykWQMJRNlgNrXD0XpOBxjpv8Y8g0/ChUR5Lqtpwt46RfTArFJv2NGNoAEcYpaU//rNQtWy9LGgWp7sUgoyqMycQVDG03ZoaqyJAibDVb3TALSjadcbaw21DKdvFRR0WyS7bneu4pNDjKnmk0OB5F6kEpjMti9eFaIFXAT0ZIkCfsNFP8dccHduQ4HD9u4VM+Kf+CpfJurp/vsB4/MuMiDhUg3AUheSPE0FYKzOGRIXhY3/1VIu+6Xeh/vLT5GAJ7LnDEtgNXn2LSK9aVakcM+Zy6/g3EFslERIfI9sg1cpvep0LBdaM2e0/O0YA5/QSAJZ9mg/bt+KWnK3XiB8XdNveX8p0C0ULx0pZfw18QYCi1xAnBCQ+8QP7520r2DBqEIcabzWP3K55yTWMVRK+0= isaac.zhu@dbappsecurity.com.cn
"""
/*到这一步已经获得了SSH秘钥了可以添加到git上
# 将密钥文件复制到剪贴板
pbcopy < ~/.ssh/myname_rsakey.pub  # 将myname_rsakey.puby替换为自己的myname_rsakey.pub
# 登录gitlab.duia.org.cn企业版账户,将上面生成的SSH添加进去:
# 进入github,设置ssh密钥
# 1. Edit Profile
# 2. SSH Keys
# 3. Add SSH Key
# 4. 将刚刚复制的Key粘贴,然后提交
# 添加rsa密钥
ssh-add myname_rsakey  # 将myname_rsakey替换为自己的id_rsa
# 测试github连接
ssh -T git@github.com
# 关联项目
cd 项目文件夹/
# 为当前文件夹初始化git
git init
# 添加远程服务器
git remote add origin git@github.com:liufan321/HelloWorldDemo.git
# 从服务器拉项目
git pull -u origin master
# 将项目内容推送到服务器
git push -u origin master

参考链接:解决:Gitlab上出现“You won’t be able to pull or push project code via SSH until you add an SSH key to you”

遇到的问题:
Git测试ssh -T git@github.com时出现: Permission denied (publickey). 处理:
正常按上述步骤添加SSH秘钥后,执行命令ssh -T git@github.com测试不会再出现Permission denied (publickey)提示;否则,尝试如下操作:
Mac系统下Gitlab部署、使用的详细教程-编程之家
方案一:
ssh-agent -s
ssh-add ~/.ssh/id_rsa
操作这两步。(备注:可能起作用,但本人验证后失效)
参考链接:Git使用出现git@github.com: Permission denied (publickey). 处理
\quad
方案二:
放弃SSH协议,转用HTTP协议完成pull、push等一系列仓库操作

MacBook-Air .ssh % cd /~./Documents/Gitlab_projects
# git clone <项目地址> 进行仓库克隆,首次使用可能需要输入gitlab的登录密码进行确认,后续不再需要
MacBook-Air Gitlab_projects % git clone http://gitlab.didi.cn/data_group/Data_project.git
>>>输出内容
"""
Cloning into 'Data_Annotations'...
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)
Unpacking objects: 100% (3/3), done.
"""

至此,切换至指定文件夹下,我们就可以看到克隆下来的文件了。

参考链接:
git上传代码报错ssh: connect to host github.com port 22: Connection timed out解决办法
遇到如下问题,但验证不奏效。
ssh: connect to host gitlab.com port 22: Operation timed out

Gitlab通用执行命令

ssh key 配置到github/gitlab之后,根据此仓储的配置提示,进行本机的配置:全局配置、上传本地代码库、新建项目等等。

备注:此处由于SSH协议测试一直不成功,故而放弃SSH协议,转用HTTP协议完成pull、push等一系列仓库操作。

如:

git config --global user.name "xxxx"
git config --global user.email "xxxx@163.com"
git init
git remote add origin xxxx(git通道)  # 若SSH协议测试不成功,修改为HTTP协议格式的git通道
git add .
git commit -m "11.11 11:11 update"
git push -u origin master

Mac系统下Gitlab部署、使用的详细教程-编程之家
参考链接:Mac gitlab创建项目 ssh生成与设置
GIT讲解