GitLab私有Git

GitLab私有Git

1 GitLab简介

GitLab是整个DevOps生命周期的第一个单一应用程序。只有GitLab才能启用Concurrent DevOps,从组件链的约束中解锁组织。GitLab提供无与伦比的可见性,更高的效率和全面的治理。这使得软件生命周期加快了200%,从根本上提高了业务速度。

官方网站

在这里插入图片描述

gitlab优势

2 GitLab安装(无需安装)

默认安装位置:

在这里插入图片描述

  1. 浏览到服务器IP并登录

    首次访问时,您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录

    在这里插入图片描述

    需要设置新的密码

    重置密码后,发现出现以下错误:

    在这里插入图片描述

    原因分析:是因为我配置了安装步骤的第二步,需要邮箱,按照官网修改配置,安装Postfix以发送通知电子邮件。如果要使用其他解决方案发送电子邮件,请跳过此步骤并在安装GitLab后配置外部SMTP服务器

2.1 Docker 安装

2.1.1 安装镜像和创建容器
  1. 拉取gitlab、redis、postgresql,gitlab依赖redis和postgresql。

    #docker pull sameersbn/redis
    #docker pull sameersbn/postgresql
    docker pull gitlab/gitlab-ce:latest
    
  2. 创建postgresql、redis容器

    #创建数据目录
    mkdir -p /usr/soft/postgresql
    
    #创建容器
    docker run --name gitlab-postgresql -itd --privileged=true \
      --publish 5432:5432 \
      --env 'DB_USER=gitlab' \
      --env 'DB_PASS=gitlab' \
      --env 'DB_NAME=gitlabhq_production' \
      --env 'DB_EXTENSION=pg_trgm' \
      --volume /usr/soft/postgresql:/var/lib/postgresql \
      sameersbn/postgresql:latest
    
    #创建数据目录
    mkdir -p /usr/soft/redis/data
    
    #创建容器
    docker run --name gitlab-redis -d  --privileged=true  \
      --publish 6379:6379 \
      --volume /usr/soft/redis/data:/var/lib/redis \
      sameersbn/redis:latest
    

    3.创建gitlab容器

    #创建数据目录
    mkdir -p /usr/soft/gitlab/data
    mkdir -p /usr/soft/gitlab/logs
    
    #创建容器
    docker run --name gitlab -d \
        --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
        --publish 10022:22 --publish 10088:80 \
        --env 'GITLAB_PORT=8899' --env 'GITLAB_SSH_PORT=10022' \
        --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
        --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
        --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
        --env 'GITLAB_HOST=192.168.94.130' \
        --env 'SMTP_AUTHENTICATION=login' \
        --volume /usr/soft/gitlab/data:/home/git/data \
        --volume /usr/soft/gitlab/logs:/var/log/gitlab \
        gitlab/gitlab-ce:latest
    

    浏览器访问:http://[IP]:10088
    初次访问需要等待一段时间。

初始化 gitlab 中的 root 账号密码:

1、登录容器

docker exec -it -u root gitlab /bin/bash

2、登录GitLab的Rails控制台

gitlab-rails console

等待一段时间后,可以在控制台中输入命令

在这里插入图片描述

3、定位到root用户

user = User.where(id: 1).first

在这里插入图片描述

4、修改root密码

# 执行下面的命令,将 xxxxx 改为自己的密码
user.password='xxxxxx'

# 修改后,保存用密码
user.save
2.1.2 配置gitlab访问地址
#进入到gitlab容器中
docker exec -it -u root gitlab /bin/bash

#编辑配置文件
vim /etc/gitlab/gitlab.rb

#添加配置信息
external_url 'http://自己的服务地址的名称,可以是内网穿透域名也可以是ip地址'

如果想通过内网穿透地址访问 gitlab ,需要将配置路径内容配置改为 内网穿透的域名。

如果是将GitLab部署到云服务上,需要配置公网ip地址,无需配置内网穿透。

2.1.3 gitlab 容器中的命令

下面的命令需要进入到 gitlab 容器中执行。

1.初始化配置

时间比较久…,需要耐心等待…, 不要做任何操作

gitlab-ctl reconfigure

2.其他命令:

# gitlab 服务操作 服务操作
# 初始化配置 gitlab
gitlab-ctl reconfigure
# 启动 gitlab 服务
gitlab-ctl start
# 停止 gitlab 服务
gitlab-ctl stop

3 GitLab使用介绍 【了解】

3.1 前期配置

大家注意,一般这些配置是需要公司的领导如CTO等人去配置的,初级开发人员是没有这个权限的。

3.1.0 修改显示主题为中文

主页面找到左上角菜单,选择 Edit profile,如下:

在这里插入图片描述

下面的组中选择为中文

在这里插入图片描述

在偏好设置中修改本地语言并保存

在这里插入图片描述

3.1.1 创建 group(规范)

所有班级创建的组名要遵循组名规范:

规范:项目名称或案例名称+班级编号+group+组标号

下面已黑马JavaEE 133班级学成项目为例子
示例:
	学成在线项目组的命名
		第一组:xuecheng133_group1

创建组示例如下:

进入用户组

在这里插入图片描述

创建组

在这里插入图片描述

按照组的命名规范创建组名称

在这里插入图片描述

在这里插入图片描述

3.1.3 创建用户
3.1.3.1 单个创建

班级小组组长将组员信息录入到GitLab中,小组组长信息由教师先添加到GitLab中。

进入到用户管理中心

在这里插入图片描述

填写用户账号信息,并在该页面下方保存用户信息

在这里插入图片描述

创建后点击编辑修改用户的密码

在这里插入图片描述

添加用户的密码

在这里插入图片描述

3.1.3.2 将用户添加到组中

进入之前创建的组中

在这里插入图片描述

进入到选中的组管理中

在这里插入图片描述

编辑组信息

在这里插入图片描述

选中新添加用户信息,并选择为开发者角色

在这里插入图片描述

PS:不同的组角色拥有不同的权限,角色权限在本文章最后。

添加成员到组中

在这里插入图片描述

在这里插入图片描述

3.2 创建项目

组长进入到组管理界面后,点击创建组中的项目,如下:

在这里插入图片描述

创建组的空项目

在这里插入图片描述

创建后的组项目,小组要将本组中的项目上传到自己组中。

在这里插入图片描述

3.3 SSH 协议

Gitlab 可以通过 http 的方式可以上传和下载代码,这种方式可以用户的账号和密码。此方式在这里就不过多介绍了,下面将介绍使用 SSH 协议来操作 Gitlab 上的项目。

3.3.1 SSH协议概述

SSH 为 Secure Shell (安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)
所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用
SSH 协议可以有效防止远程管理过程中的信息泄露问题。

3.3.2 基于密匙的安全验证

使用 ssh 协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公
**用密匙放在需要访问的服务器上。**如果你要连接到 SSH 服务器上,客户端软件就会向服务
器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主
目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,
服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到
“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

3.3.3 SSH密钥生成

密钥生成的方式有很多种,常见的jdk的工具或者是git bash等。本教程使用GitBash

  1. 鼠标右键打开GitBash客户端

    在这里插入图片描述

  2. git bash 执行命令,生命公钥和私钥

    ssh-keygen -t rsa
    

    在这里插入图片描述

执行命令完成后,在 window本地用户.ssh目录 C:\Users\用户名\ .ssh下面

生成如下名称的公钥和私钥:

在这里插入图片描述

3.3.4 SSH密钥配置

密钥生成后需要在 gitlab 上配置密钥本地才可以顺利访问。

在这里插入图片描述

设置成功后, 我们就可以使用 SSH的形式上传和下载代码了。

在这里插入图片描述

在这里插入图片描述

git clone git@47.110.238.87:group1/pinyougou_service.git
cd pinyougou_service
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

完成提交操作。

4 Idea使用GitLab【练习】

下面的方式我们将使用 idea 中通用的操作来上传到 gitlab 中,无需其他的插件。下面方式不仅可以做到向 gitlab 中上传,也可以向 gitee 和 github 中上传。

4.1 上传项目至Gitlab

  1. 点击 VCS,创建本地仓库’Create Git Repository’

在这里插入图片描述

  1. 选择项目的根目录,作为 git 本地仓库的根资源库。

在这里插入图片描述

  1. 向项目的根路径下添加 .gitignore 文件忽略不许要上传的文件

在这里插入图片描述

  1. 在 git 窗口中 local changes 目录中,选择未添加到控制的文件

    PS :在下面的列表中看下是否有不许要上传的文件存在,如果有请将排除(.gitignore)或删除

在这里插入图片描述

  1. 在排查好上传文件后,点击绿色 √,将下面文件添加到版本控制中

    此次操作会将未添加到版本控制的文件 add 版本控制中,并 commit 到本地仓库里

在这里插入图片描述

  1. 选择文件将文件提交到本地仓库中

    将下面的文件选中,并填写提交的备注(备注必须要填写)

    将 Before Commit 中的 PerForm code analysis 和 Check TODO 去掉勾选,这样可以加快上传的速度

在这里插入图片描述

  1. 将项目上传到远程仓库 gitlab 中

    选中项目的根目录,在 git 菜单栏中选择 Push

在这里插入图片描述

  1. 点击 Define remote 在弹出窗口中的 URL 里填写之前的项目地址

    PS:保证远端仓库是一个新的仓库

在这里插入图片描述

  1. 输入账号和密码点击 Log in

在这里插入图片描述

点击 Push 进行提交

在这里插入图片描述

  1. 检查 Git 中是否已经上传到远端仓库地址中

在这里插入图片描述

远端仓库中上传后项目的内容

在这里插入图片描述

以上我们将自己的项目上传到了 gitlab 组中的项目中,只有本组的人员才可以看到此项目中的内容。

4.2 从Gitlab上拉取项目至本地

关闭项目后,选择导入

在这里插入图片描述

输入gitlab对应项目的地址

在这里插入图片描述

如果显示需要输出账号和密码,请求输入

在这里插入图片描述

修改文件后提交并推送到远程仓库

在这里插入图片描述

在这里插入图片描述

4.3 冲突解决

和git解决冲突一致。

在这里插入图片描述

4.4 分支合并

不同模块创建不同的分支,开发者在自己当前的分支下开发代码,等待测试通过之后,需要项目组长leader将所有分支的代码合并到master分支上即可。

gitlab默认是将代码master分支是保护的,所以需要以下设置

在这里插入图片描述

5 补录

GitLab 用户组中的角色权限图一览

在这里插入图片描述

在这里插入图片描述

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要配置私有Git仓库,可以按照以下步骤进行: 第一步,选择一台服务器作为Git仓库的主机。可以选择一个云服务提供商,也可以使用自己的服务器。 第二步,安装Git软件和相关依赖。在主机上安装Git软件,并确保所需要的依赖项已经安装。 第三步,创建Git用户账号。在主机上创建一个用于访问Git仓库的用户账号,设置密码并进行必要的权限配置。 第四步,初始化Git仓库。在主机上创建一个新的文件夹作为Git仓库的根目录,并使用Git初始化命令进行初始化。 第五步,设置私有访问权限。通过在Git仓库目录下创建.gitignore文件来设置需要排除的文件和文件夹,确保私有的敏感信息不会被提交到公共仓库中。 第六步,配置SSH密钥验证。生成并配置SSH密钥对,将公钥添加到Git仓库的受信任密钥列表中,以便通过SSH协议进行安全的认证和访问。 第七步,创建Git仓库远程链接。将Git仓库的地址添加为远程链接,这样就可以使用git push和git pull等命令进行代码的上传和下载。 第八步,设置访问权限控制。根据实际需求,可以使用Git提供的权限控制机制,配置读写权限、分支权限等。 第九步,设置备份和灾备方案。为了保障数据的安全性,应定期进行Git仓库的备份,并设置灾备方案,以防止数据丢失。 最后,测试配置是否生效。在本地或其他终端上进行简单的git clone、git pull和git push等操作,确保配置正确并可以正常访问私有Git仓库。 通过以上步骤,就可以成功配置私有Git仓库,并确保代码的安全性和保密性。 ### 回答2: 要配置私有 Git,您可以按照以下步骤进行操作: 1. 获取一个适合您的版本控制系统(VCS)软件,例如 Git。 2. 安装 Git 并确保其正常运行。 3. 在您的本地计算机上创建一个用于存储代码的文件夹,命名为私有 Git 仓库。 4. 打开命令行工具,并导航到您的私有 Git 仓库目录。 5. 初始化 Git 仓库,运行命令 `git init`。 6. 创建一个用于存储代码的空文件夹,并将其命名为 "repository"。 7. 在命令行中使用 `cd` 命令进入 "repository" 文件夹。 8. 创建一个新的 Git 仓库,运行命令 `git init --bare`。 9. 返回到私有 Git 仓库的根目录,运行命令 `git clone /path-to/repository`。 10. 使用 `cd` 命令进入仓库文件夹,您现在可以在本地计算机上工作并推送到私有 Git 仓库。 11. 如果需要,您还可以添加其他用户的访问权限,将他们添加为仓库的贡献者。 完成上述步骤后,您就已经成功配置了私有 Git。您可以在本地计算机上使用 Git 进行版本控制,并将更改推送到私有 Git 仓库中。这样,您可以安全地管理您的代码,并与其他用户共享和协作。请确保定期备份您的私有 Git 仓库,以防止数据丢失。 ### 回答3: 配置私有Git仓库是很有必要的,这样我们可以更好地管理和保护我们的代码。以下是关于如何配置私有Git仓库的步骤: 第一步是安装和配置Git服务。有许多Git服务提供商可供选择,如GitLabGitHub Enterprise和Bitbucket等。根据我们的需求选择合适的Git服务,并按照其提供的文档进行安装和配置。 第二步是创建私有仓库。在Git服务中,我们可以创建一个新的私有仓库,并为其分配一个唯一的仓库名称。我们可以选择是否设置仓库的访问权限,如只允许特定团队成员或特定用户访问等。 第三步是将代码添加到私有仓库中。我们可以使用Git命令行工具或Git客户端将代码添加到私有仓库中。首先,我们需要克隆私有仓库到本地机器,然后将代码添加到克隆的仓库中,最后将更改推送到远程仓库。 第四步是协作和管理私有仓库。我们可以添加团队成员到私有仓库,并为每个成员分配不同的访问权限。这样,只有有权限的成员才能在仓库上进行操作。我们还可以使用分支、合并请求和问题跟踪等功能来协调和管理团队的工作。 最后一步是保护私有仓库的安全性。我们可以设置Webhook,以便在有人提交代码或发生其他特定事件时,自动触发特定的操作或通知。我们还可以配置Git服务的安全设置,如双因素认证和IP限制,以增加仓库的安全性。 通过以上步骤,我们可以成功地配置私有Git仓库。这样,我们可以更好地管理和保护我们的代码,同时提高团队的协作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值