文章目录

  • 一、git概述
  • 二、Git 与 SVN 区别
  • 三、Git下载安装
  • 四、Git 工作流程
  • 五、Git 工作区、暂存区和版本库
  • 六、Git 创建仓库
  • 配置
  • 1、查看配置
  • 2、编辑 git 配置文件
  • 3、设置提交代码时的用户信息
  • 七、Git 基本操作
  • 1)不同区说明
  • 2)一个简单的操作步骤
  • 3)创建仓库命令
  • 4)提交与修改操作
  • 1、git add
  • 2、git status
  • 3、git diff
  • 4、git commit
  • 5、git reset
  • 6、git rm
  • 7、git mv
  • 5)查看提交日志
  • 6)远程操作
  • 1、git remote
  • 2、git push
  • 1)生成Token
  • 2)设置token
  • 3)配置github的ssh密钥--Windows(推荐)
  • 3、git pull
  • 4、git pull和git fetch的区别
  • 7)Git 分支管理
  • 1、创建分支
  • 2、创建并切换分支
  • 3、合并分支
  • 5、撤销修改
  • 6、版本回退
  • 1)回退到上个版本
  • 2)回退到前n次版本
  • 3)回滚指定commit id版本(常用/推荐)
  • 7、版本冲突解决
  • 八、打标签(tag)
  • 1)创建标签
  • 2)删除标签
  • 3)查看此版本所修改的内容
  • 4)推送标签到远程仓库
  • 5)删除远程标签
  • 九、搭建私有仓库(gitlab)
  • 1)配置yum源
  • 2)更新本地yum缓存
  • 3)安装GitLab社区版
  • 4)启动所有 gitlab 组件
  • 5)gitlab修改默认端口
  • 1、修改puma端口
  • 2、修改nginx端口
  • 3、修改giltab-shell配置
  • 6)访问验证
  • 7)Gitlab各组件启动停止命令
  • 1、GitLab(所有服务)
  • 2、Nginx
  • 3、Puma
  • 4、Sidekiq
  • 5、PostgreSQL
  • 6、Redis
  • 8)简单使用
  • 1、新建项目
  • 2、生成并配置秘钥ssh密钥--Windows(推荐)
  • 1)打开Git Bash查看电脑上是否已经存在SSH密钥
  • 2) 创建新的ssh key
  • 3)gitlab配置ssh key
  • 3、git配置


一、git概述

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

二、Git 与 SVN 区别

Gitlab Runner Token 利用 gitlab的token在哪里设置_git

Git

SVN

数据分布方式

分布式

集中式

存储方式

按元数据存,所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里

按文件存储

版本号

Git 没有一个全局的版本号

SVN 有全局版本号:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

内容完整性

Git 的内容完整性要优于 SVN,Git 的内容存储使用的是 SHA-1 哈希算法。

~

三、Git下载安装

在使用Git前我们需要先安装 Git。Git 目前支持 Linux/UnixMacWindows 平台上运行。

Git 各平台安装包下载地址为:http://git-scm.com/downloads

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_02


Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_03


接下来就是傻瓜式的一步步操作,很简单,就不在这里讲了。

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_04

四、Git 工作流程

一般工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

下图展示了 Git 的工作流程:

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_05

五、Git 工作区、暂存区和版本库

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_06

六、Git 创建仓库

Git 使用 git init 命令来初始化一个 Git 仓库, git init 是使用 Git 的第一个命令。在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

# 该命令执行完后会在当前目录生成一个 .git 目录。
$ git init

# 使用我们指定目录作为Git仓库。
$ git init test2022

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_07

配置

1、查看配置
# 查看配置
$ git config --list

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_08

2、编辑 git 配置文件
# .git目录下执行修改当前仓库
$ git config -e

# 针对系统上所有仓库
$ git config -e --global
3、设置提交代码时的用户信息
$ git config --global user.name "bigdata"
$ git config --global user.email test@bigdata.com

七、Git 基本操作

Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我们会详细介绍。

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_09

1)不同区说明

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

2)一个简单的操作步骤

  • git init - 初始化仓库。
  • git add . - 添加文件到暂存区。
  • git commit - 将暂存区内容添加到仓库中。

3)创建仓库命令

上面说过git init是初始化创建仓库,还有一个非常常用的,就是git clone拷贝一份远程仓库,也就是下载一个项目。

4)提交与修改操作

命令

说明

git add

添加文件到暂存区

git status

查看仓库当前的状态,显示有变更的文件。

git diff

比较文件的不同,即暂存区和工作区的差异。

git commit

提交暂存区到本地仓库。

git reset

回退版本。

git rm

删除工作区文件。

git mv

移动或重命名工作区文件。

1、git add

#添加当前目录下的所有文件到暂存区:

$ touch HEAD
$ vi HEAD
hello world!!!
$ git status
$ git add .
$ touch hello.java
$ git status -s
$ git add hello.java

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_10

2、git status

查看仓库当前的状态,显示有变更的文件。git status -sgit status --short 命令以精简的方式显示文件状态。

  • 新添加的未跟踪文件前面有 ?? 标记,
  • 新添加到暂存区中的文件前面有 A 标记,
  • 修改过的文件前面有M标记。
  • M 有两个可以出现的位置,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区
A: 你本地新增的文件(服务器上没有).

其它不常用的文件状态

  • C: 文件的一个新拷贝.
  • D: 你本地删除的文件(服务器上还在).
  • R: 文件名被修改了。
  • T: 文件的类型被修改了。
  • U: 文件没有被合并(你需要完成合并才能进行提交)。
  • X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)
  • :未被git进行管理,可以使用git add file1把file1添加进git能被git所进行管理
3、git diff

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_09

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

git diff 有两个主要的应用场景:

  • 【场景一】git diff 命令比较文件的不同,即比较文件在暂存区工作区的差异。
  • 【场景二】git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别。

尚未缓存的改动:git diff 查看已缓存的改动: git diff --cached 查看已缓存的与未缓存的所有改动:git diff HEAD 显示摘要而非整个 diff:git diff --stat

workspace:工作区文件 与 staging area:暂存区/缓存区文件 对比

$ git status -s
# 所以文件
$ git diff
# 指定文件对比
$ git diff hello.java

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_12


git diff --cached

staging area:暂存区/缓存区文件 与 local repository:版本库或本地仓库文件对比

$ git add HEAD
$ git diff --cached

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_13

4、git commit

git commit 命令将暂存区内容添加到本地仓库中。

# 所有文件
$ git commit -m "message"
# 指定文件
$ git commit hello.java HEAD -m "message"
# -a 参数设置修改文件后不需要执行 git add 命令,直接来提交
$ echo "test001" > test001
$ echo "test002" > test002
$ git commit -am "messages"

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_14

5、git reset

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本
$ git log --oneline			# 查看提交的版本
$ git  reset 49c5826           # 回退到指定版本
$ git status				# 查看文件状态

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_15

6、git rm

将文件从暂存区工作区中删除:git rm <file>

$ git rm hello.java
# 强行从暂存区和工作区中删除
$ git rm -f hello.java
# 例从暂存区中删除文件
$ git rm --cached hello.java
# 可以递归强制删除
$ git rm -rf --cached dir
7、git mv

git mv 命令用于移动或重命名一个文件、目录或软连接。

git mv [file] [newfile]

如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
git mv -f [file] [newfile]

$ touch t2022
$ git add t2022
$ git mv t2022 t2023
# 如果t2023存在,-f
$ git mv -f t2022 t2023
$ git status

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_16

5)查看提交日志

$ git log
# 一行显示
$ git log --oneline
# 带参数--author
$ git log --oneline --author="liugp"
# 带事件,包含--until,不包含--since,如果两个时间一样就包含
$ git log --since="2022.03.05" --until="2022.03.06"

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_17

6)远程操作

1、git remote
$ git remote -v
$ git clone git://github.com/flutter/flutter.git
$ cd flutter
$ git remote -v

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_18


显示某个远程仓库的信息:

# 下载
$ git clone git@gitee.com:apache/flink.git
# 进入到项目
$ cd flink
# 只显示名称
$ git remote show
# 显示具体信息
$ git remote -v

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_19


添加新的远程仓库

$ git remote add GithubTest2022 https://github.com/liugp1116/Test2022.git
$ git remote -v

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_20

2、git push

添加远程仓库的意义就是将文件推送到远程仓库保存管理【本地仓库(local repository)-》远程仓库(remote repository)

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_21

# origin远程仓库别名,master当前仓库分支名,会出现需要输入账号密码
$ git push GithubTest2022 master

输入自己GitHub的账号(当然也可以是gitee、gitlab或者其它,下面也会讲)

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_22

输入GitHub的密码

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_23


账号密码的这种方式在GitHub上在2021年已经被废除了,必须使用`个人访问令牌(personal access token) 的方式进行访问,配置方式如下:

1)生成Token
  1. 在个人设置页面,找到Setting
  2. Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_24


  3. 选择开发者设置Developer setting
  4. Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_25


  5. 选择个人访问令牌Personal access tokens,然后选中生成令牌Generate new token
  6. Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_26


  7. 设置token的有效期,访问权限等
  8. 生成令牌Generate token

【温馨提示】记得把你的token保存下来,因为你再次刷新网页的时候,你已经没有办法看到它了。

2)设置token
// <your_token>:包括<>在内的全部字符替换成你的token
// <USERNAME>:包括<>在内的全部字符替换成你的username
// <REPO>:包括<>在内的全部字符替换成你要访问的仓库名称
git remote set-url origin  https://<your_token>@github.com/<USERNAME>/<REPO>.git
git push GithubTest2022 master
3)配置github的ssh密钥–Windows(推荐)
  1. 打开Git Bash查看电脑上是否已经存在SSH密钥
$ cd ~/.ssh/
  1. 创建新的ssh key
$ ssh-keygen -t rsa -C "your_email@youremail.com"

因为之前就创建过,所以我这边是覆盖

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_27


3. 复制ssh key到github

$ cat id_rsa.pub

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_28


Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_29


4. 测试 ssh 链接 github

$ ssh -T git@github.com

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_30


5. 设置自己的git信息

#(此处name可修改也不是用于登录github的登录名)
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "your_email@youremail.com"

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_31


6. 测试验证

$ git remote add ssh_test2022 git@github.com:liugp1116/Test2022.git
$ git remote -v
# 如果远程仓库没有这个分支,会自动创建master分支,跟本地分支名称一致
$ git push ssh_test2022 master
### git push <远程主机名> <本地分支名>:<远程分支名>
$ git push ssh_test2022 master:dev

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_32


查看所有分支,红色代表远程分支,绿色代表本地分支

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_33


Gitlab Runner Token 利用 gitlab的token在哪里设置_git_34


7. -u参数

# 加了参数-u后,以后即可直接用git push 代替git push origin master
$ git push -u ssh_test2022 master
# 就此关联起来了,不用再输入那么长的命令了
$ git push

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_35


8. 强制推送(–force)

$ git push --force origin master
  1. 删除远程分支
### 删除主机的分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支:
$ git push origin --delete master
3、git pull
### git pull <远程主机名> <本地分支名>:<远程分支名>
$ git pull ssh_test2022 master:dev
# 下面三个等价
$ git pull ssh_test2022 master:master
$ git pull ssh_test2022 master
$ git pull
4、git pull和git fetch的区别
  • git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
  • git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
$ git fetch ssh_test2022 master

取回更新后,会返回一个FETCH_HEAD,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:

$ git log -p FETCH_HEAD

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_36


合并分支

$ git merge FETCH_HEAD

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_37

7)Git 分支管理

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

1、创建分支
$ git branch dev
# 查看本地分支
$ git branch
# 查看远程分支
$ git branch -r
# 查看所有分支
$ git branch -a

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_38

2、创建并切换分支
$ git checkout -b test
### 等价于下面两句
$ git branch test
$ git checkout test
3、合并分支

一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:

$ git checkout master
# 将dev合并到当前分支(master)
$ git merge dev
5、撤销修改
  • 本地修改没add添加到暂存区
# 撤销指定文件
$ git checkout t1
# 撤销多文件,以空格分开
$ git checkout 123.txt t1
# 撤销所有,很少用,不推荐
$ git checkout .

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_39

【温馨提示】checkout不仅有撤销修改,还能切换分支,上面有讲过。

  • 本地修改已经add添加到暂存区,但是没commit提交到本地仓库

用git status查看一下,修改只是添加到了暂存区,还没有提交,这时用命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区,然后再用git checkout – file 丢弃工作区的修改:

# 把修改add添加到暂存区
$ git add 123.txt
# 暂存区与本地仓库比较
$ git diff --cached
$ git status
# 指定文件
$ git reset HEAD -- 123.txt
# 指定多个文件
$ git reset HEAD -- 123.txt test.txt
# 所有文件
$ git reset HEAD -- .
6、版本回退

在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
在Git中,我们用git log命令查看修改记录:

查看版本号ID(历史提交记录)

$ git log
# 一行显示
$ git log --oneline
$ git log --pretty=oneline

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_40

我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:

$ git log --graph

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_41

1)回退到上个版本
$ git reset --hard HEAD^

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_42

2)回退到前n次版本
$ git reset --hard HEAD~3
3)回滚指定commit id版本(常用/推荐)
# 先查找commit id
$ git log
# 一行显示
$ git log --oneline
$ git log --pretty=oneline

# 回滚,用完整ID也可以用短ID,ID只要唯一就行,可以任意
$ git reset --hard 1c544f1

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_43

7、版本冲突解决

在公司里远程仓库都是大家公用的,如果没有更新最新的版本,各自又修改同一个文件提交到远程仓库就会产生冲突。

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_44


【解决】

# 先拉取最新的代码
$ git pull

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_45

看上图提示发现合并的时候产生冲突,打开文件发现冲突的文件有两段最新代码,一段是自己本地提交的,一段是从远程拉取下来的。

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_46


修改解决冲突,修改完如下内容:

Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_47


再add-》commit-》push到远程仓库,解决冲突

$ git add 123.txt
$ git commit -m "解决冲突"
$ git push
$ git status

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_48

八、打标签(tag)

1)创建标签

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。

$ git tag
$ git tag v0312
$ git tag

2)删除标签

$ git tag -d v0312

3)查看此版本所修改的内容

# 查看此版本所修改的内容
$ git show v0312

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_49

4)推送标签到远程仓库

# 推送一个本地标签到远程仓库
$ git push ssh_test2022 v0312
 # 推送全部未推送过的本地标签
$ git push ssh_test2022 --tags

5)删除远程标签

# 删除一个远程标签
$ git push ssh_test2022 :refs/tags/v0312

九、搭建私有仓库(gitlab)

出于安全和稳定而言,搭建私有本地仓库是在企业里最常见的,企业里基本上不可能用外网的仓库作为公司的代码仓库。Gitlab官方文档

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_50


图源:https://docs.gitlab.com/ee/development/architecture.html

  • Nginx:静态web服务器。
  • gitlab-shell:用于处理Git命令和修改authorized keys列表。
  • gitlab-workhorse: 轻量级的反向代理服务器。
  • logrotate:日志文件管理工具。
  • postgresql:数据库。
  • redis:缓存数据库。
  • sidekiq:用于在后台执行队列任务(异步执行)。
  • Puma:Puma是一个Ruby应用服务器,用于运行核心Rails应用程序,该应用程序在GitLab中提供面向用户的功能。这通常以捆绑或配置的形式显示在进程输出中。ru取决于GitLab版本。

1)配置yum源

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

$ cat << EOF > /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8$releasever/
gpgcheck=0
enabled=1
EOF

2)更新本地yum缓存

$ yum clean all && yum makecache

【Centos8的问题】Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

【解决】

cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum update -y

3)安装GitLab社区版

$ yum install gitlab-ce -y

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_51

4)启动所有 gitlab 组件

# 启动所有服务,使配置文件生效,但是会初始化除了gitlab.rb之外的所有文件
# 配置文件/etc/gitlab/gitlab.rb
$ gitlab-ctl reconfigure
$ gitlab-ctl status
# 检查gitlab
$ gitlab-rake gitlab:check SANITIZE=true --trace

其它常用命令

# 停止所有 gitlab 组件;
$ gitlab-ctl stop
# 重启所有 gitlab 组件;
$ gitlab-ctl restart 
#查看日志的命令(Gitlab 默认的日志文件存放在/var/log/gitlab 目录下)
$ gitlab-ctl tail # 查看日志;

WEB UI

账号:root

密码在这个文件中:/etc/gitlab/initial_root_password web ui默认端口:http://192.168.0.113:80

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_52

5)gitlab修改默认端口

最有可能被其它进程占用的端口就是8080和80端口了

1、修改puma端口

配置文件:/etc/gitlab/gitlab.rb,修改puma['port']8080-》8082

puma['port'] = 8083

修改域名

# external_url 'http://gitlab.bigdata.com'
$ sed -i 's/gitlab.example.com/gitlab.bigdata.com/' /etc/gitlab/gitlab.rb

#这个记得配置hosts域名映射C:\Windows\System32\drivers\etc\hosts
192.168.0.113 gitlab.bigdata.com

重启服务

$ gitlab-ctl reconfigure

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_53


Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_54

2、修改nginx端口

配置文件:/var/opt/gitlab/nginx/conf/gitlab-http.conf,修改listen修改*80-》*8088

重新加载配置

$ netstat -tnlp|grep :80
$ netstat -tnlp|grep :8088
# 重启服务,不能使用gitlab-ctl reconfigure,要不然会重置配置回80
$ gitlab-ctl restart
$ netstat -tnlp|grep :8088

web访问:http://192.168.0.113:8088/

Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_55

3、修改giltab-shell配置

上面nginx端口改了,giltab-shell配置也必须跟着改,要不然提交会报错,配置文件:/var/opt/gitlab/gitlab-shell/config.yml,修改如下:

gitlab_url: "http://127.0.0.1:8088"

重启服务

$ gitlab-ctl restart

6)访问验证

http://192.168.0.113:8088

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_56

7)Gitlab各组件启动停止命令

其实上面的restart都是重启所有服务,很麻烦,一般在公司都是重启指定服务。

1、GitLab(所有服务)
$ gitlab-ctl start 
$ gitlab-ctl stop 
$ gitlab-ctl restart 
$ gitlab-ctl status 
$ gitlab-ctl reconfigure
2、Nginx
$ gitlab-ctl start nginx
$ gitlab-ctl stop nginx
$ gitlab-ctl restart nginx
$ gitlab-ctl status nginx
3、Puma
$ gitlab-ctl start puma
$ gitlab-ctl stop puma
$ gitlab-ctl restart puma
$ gitlab-ctl status puma
4、Sidekiq
$ gitlab-ctl start sidekiq
$ gitlab-ctl stop sidekiq
$ gitlab-ctl restart sidekiq
$ gitlab-ctl status sidekiq
5、PostgreSQL
$ gitlab-ctl start postgresql 
$ gitlab-ctl stop postgresql 
$ gitlab-ctl restart postgresql 
$ gitlab-ctl status postgresql
6、Redis
$ gitlab-ctl start redis
$ gitlab-ctl stop redis
$ gitlab-ctl restart redis
$ gitlab-ctl status redis

8)简单使用

1、新建项目

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_57


Gitlab Runner Token 利用 gitlab的token在哪里设置_工作区_58

2、生成并配置秘钥ssh密钥–Windows(推荐)
1)打开Git Bash查看电脑上是否已经存在SSH密钥
$ cd ~/.ssh/
2) 创建新的ssh key
$ ssh-keygen -t rsa -C "your_email@youremail.com"
3)gitlab配置ssh key

先复制~/.ssh/id_rsa.pub内容

Gitlab Runner Token 利用 gitlab的token在哪里设置_git_59


在再gitlab上添加

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_60


Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_61

3、git配置
$ git remote add gitlab_test2022 git@gitlab.bigdata.com:root/test2022.git
$ git remote -v
# 将本地仓库的文件push到gitlab
$ git push gitlab_test2022 master

Gitlab Runner Token 利用 gitlab的token在哪里设置_gitlab_62


Gitlab Runner Token 利用 gitlab的token在哪里设置_暂存区_63

【温馨提示】gitlab的安装和简单操作使用就先到这了,基本上公司不会让自己亲自去搭建这玩意,所以只要会使用git基本操作就行了,不用去纠结其中的原理。