Gitlab简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

管理的命令
gitlab-ctl stop
gitlab-ctl start
gitlab-ctl restart           

                Gitlab的仓库搭建

1)上传安装包

[root@localhost ~]# rz

[root@ken ~]# ls | grep git

gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm

2)使用yum安装

[root@localhost ~]# yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm -y

3)修改配置文件

[root@localhost ~]# vim /etc/gitlab/gitlab.rb
...
## Url on which GitLab will be reachable.
## For more details on configuring external_url see:
## https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md#c onfiguring-the-external-url-for-gitlab
external_url 'http://192.168.253.147'    #改成本机的ip地址 ## Note: configuration settings below are optional.
## Uncomment and change the value.
############################
# gitlab.yml configuration #
############################

4)使配置生效

[root@localhost ~]# gitlab-ctl reconfigure

5)通过配置文件里更改的ip直接访问浏览器。

              Gitlab在linux中的使用

一、密码使用

用到的命令

1.git add

2. git commit

3. git push origin 字分支名字

第一步:创建目录

[root@localhost ~]# mkdir haha
[root@localhost ~]# cd haha

[root@localhost haha]# ls -a
. ..                #不包含.git的目录

第二步:从web仓库中下载项目

[root@localhost haha]# git clone http://192.168.253.147/root/mama.git正克隆到 'mama'...  #仓库中的链接
warning: 您似乎克隆了一个空版本库。
[root@localhost haha]# ls
mama                

第三步:创建新的分支

[root@localhost haha]# cd mama
[root@localhost mama]# ls -a
. .. .git              #下载的版本库中的目录包含.git文件

第四步:创建测试文件并上传

[root@localhost mama]# vim test1
[root@localhost mama]# cat test1
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin
lp:x:::lp:/var/spool/lpd:/sbin/nologin
sync:x:::sync:/sbin:/bin/sync
shutdown:x:::shutdown:/sbin:/sbin/shutdown
halt:x:::halt:/sbin:/sbin/halt
mail:x:::mail:/var/spool/mail:/sbin/nologin
...
[root@localhost mama]# git add .
[root@localhost mama]# git commit -m 'v1'          #将测试文件提交到仓库中(中间省略一千字) 。。。
[root@localhost mama]# git push -u origin master   #将子分支的测试文件推送到主分支,这里master既是子分支又是主分支,因为没有创建子分支
Username for 'http://192.168.253.147': root
Password for 'http://root@192.168.253.147':
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To http://192.168.253.147/root/mama.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

第五步:在网页查看gitlab

能看到刚才创建的测试文件即成功。

二、免密使用

用途:为了解决每次登陆gitlab都要输入用户密码

第一步:查看web端gitlab的秘钥地址

第二步:在本机生成秘钥文件并查看公钥

[root@localhost ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzKsjckORW+jl9lnxEXPo+Fym7DsGRM0dR3F3py2+zFlDhVNSAoYN+EeflBlfkoQLorb7viaE
Nnzx26QxCx9dJ2Gdz1lWkjHoKwxExVU1bBM7DaTYlHD+t4hPM/moXWi4+T+uIeBnTWHcqlVYh6OIC817P7smBk+WKQUhA1L/2QUIutYDWd9FxVy
IiYwbgtoiLqmhLlOadEfjjCz7hS1x0tsXRliN1lawAQ+RGdzdwSXS984H38nxIVmvwBDXRB+TJrtJyNb8Fn9YKXbETZDUXQPbd48NPmQPHfNdUTd
ULvAZfX0AM3cphbdMoA2jchDaEjYZlp138lXwQzkXiDTX root@localhost.localdomain

第三步:复制秘钥信息填写进web服务端

第四步:粘贴公钥

第五步:点击提交之后再次下载仓库信息

注意这里git clone之后写的是ssh的信息,不是http的连接信息了

回车之后可以看到没有输入任何东西就直接下载完成

[root@localhost ~]# mkdir user1
[root@localhost ~]# cd user1
[root@localhost user1]# git clone git@192.168.253.147:root/mama.git
正克隆到 'mama'...                  #可以看到不需要验证了
The authenticity of host '192.168.253.147 (192.168.253.147)' can't be established.
ECDSA key fingerprint is SHA256:7rl4vvR/lMeNEQyYw4zTD+RUS4ForCBbU8+7jItYy/.
ECDSA key fingerprint is MD5:4a:f8:5c:::da:fe:6b:b8:7f:d0:8a::fc:f4:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.253.147' (ECDSA) to the list of known hosts.
remote: Counting objects: , done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
接收对象中: % (/), done.

第六步:重新创建一个测试文件,推送到主机仓库中

[root@localhost mama]# echo '' >>test2
[root@localhost mama]# git add .
[root@localhost mama]# git commit -m 'v2'
[master 15373f7] v2
Committer: root <root@localhost.localdomain>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息: git config --global user.name "Your Name"
git config --global user.email you@example.com 设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份: git commit --amend --reset-author file changed, insertion(+)
create mode test2
[root@localhost mama]# git push -u origin master    #将本地仓库推送到远程主机

Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.253.147:root/mama.git
5e1b2e6..15373f7 master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

第七步:网页中查看是否有推送的内容

可以看到test2文件被上传上来了,证明免密操作成功。

              Gitlab在web中的免密使用

第一步:下载并安装git

第二步:创建空文件夹

第三步:

创建一个文件zz.txt作为工作目录并进入目录之后

右击鼠标有两个选项,一个是bash一个是GUI选择bash

第四步:初始化并提交文件至仓库

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹
$ git init
Initialized empty Git repository in C:/Users/zzz/Desktop/新建文件夹/.git/ zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git add . zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git status
On branch master Initial commit Changes to be committed:
(use "git rm --cached <file>..." to unstage) new file: zz.txt        #新文件已被添加到缓存区
zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git config --global user.email "you@example.com"      #身份验证 zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git config --global user.name "Your Name" zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git commit -m 'v1'              #提交至版本仓库v1
[master (root-commit) a268755] v1
file changed, insertions(+), deletions(-)
create mode zz.txt

第五步:生成密钥并把公钥信息添加到web端

然后添加主机,将仓库内容推送至主机中

如果不需要身份验证则证明成功

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/zzz/.ssh/id_rsa):
Created directory '/c/Users/zzz/.ssh'.          #此目录下保存着公钥信息,复制添加到web端,如同linux的添加密钥操作一样
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/zzz/.ssh/id_rsa.
Your public key has been saved in /c/Users/zzz/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ISrkWjSgsW4l2IPMPkEbZWdjcmV7BCWRRYaCSJSkBNQ zzz@LAPTOP-H0DJGG0F
The key's randomart image is:
+---[RSA ]----+
|XO=+.*.*O* |
|OO+E*.oo= |
|***. o... |
|o++o . ... |
| =+ . S |
|.o.. |
|. |
| |
| |
+----[SHA256]-----+

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git push -u origin master      #直接推送会报错,因为没添加主机
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git remote add origin git@192.168.253.147:root/mama.git      #添加主机

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
$ git push -u origin master
The authenticity of host '192.168.253.147 (192.168.253.147)' can't be establisd.
ECDSA key fingerprint is SHA256:7rl4vvR/lMeNEQyYw4zTD+RUS4ForCBbU8+7jItYy/0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.253.147' (ECDSA) to the list of known host
To git@192.168.253.147:root/mama.git

第六步:重新创建文件夹,下载添加的主机仓库内容

然后在此仓库中新建文件new.txt写入测试内容,提交v5版本库推送至主机。

zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 ()/mama (master)
$ git add . zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 ()/mama (master)
$ git commit -m 'v5'              #提交测试文件
[master 5eee116] v5
file changed, insertions(+), deletions(-)
create mode new.txt zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 ()/mama (master)
$ git push -u origin master            #推送
Counting objects: , done.
Delta compression using up to threads.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To git@192.168.253.147:root/mama.git
15373f7..5eee116 master -> master
Branch master set up to track remote branch master from origin.

可以看到推送过程中并不需要密码

第七步:查看是否推送成功

推送成功,也证明免密操作成功。

Gitlab仓库搭建和免密使用gitlab的更多相关文章

  1. linux进阶之gitlab仓库搭建及免密使用

    一.Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类 ...

  2. Gitlab仓库搭建及在Linux/windows中的免密使用

    1. Gitlab简介 Gitlab:代码私有仓库,可以使用Git进行代码的管理. GitHub:公共仓库. GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭 ...

  3. Gitlab仓库搭建及在linux/windows中免密使用gitlab(二)--技术流ken

    Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的 ...

  4. sftp免密登录

    最近在linux服务器上搭建了一个sftp服务器,在做免密登录时,因为理解的问题,走了些弯路,在此记录一下. 先来说一下服务器端,在服务端的每一个用户的根目录下都有一个.ssh目录,在这个下面放的公私 ...

  5. Linux入门——SSH免密登录

    SSH免密登录 1.简介 SSH是一种网络协议,用于计算机之间的加密登录. 本文针对的实现是OpenSSH,它是自由软件,应用非常广泛. 2.初始化公钥私钥 有rsa,dsa两种加密方式,生成的公钥私 ...

  6. 在linux下执行git clone、git pull 、git push等操作免密

    1. 通过ssh密钥实现 ssh-keygen -t rsa -C "你的邮箱" -f "自己定义的目录" 打开: id_rsa.pub ,将文件内容复制到 g ...

  7. 非root用户的SSH免密登录

    在网上找到的教程一般是这样说的 cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以 cat id_rsa. ...

  8. 多节点ssh免密匙登录

    1,在所有节点上,使用yourname用户名执行: ssh-keygen -t dsa -P '' -f /home/yourname/.ssh/id_dsa 2,在node1的/home/yourn ...

  9. Mac 使用 SSH 免密连接服务器

    1.生成 SSH 秘钥 ssh-keygen -t rsa  生成的密钥对 id_rsa 和 id_rsa.pub,默认存储在 ~/.ssh 目录,其中没有后缀的是私有,有后缀 .pub 的为公钥.生 ...

随机推荐

  1. SpringBoot 使用maven创建springboot项目

    有两种方式可以创建  1是使用spring-boot-starter-parent ,2是使用spring-boot-dependencies (即父项目dependencyManagement) ( ...

  2. python字典使用总结

    作者:python技术人 博客:https://www.cnblogs.com/lpdeboke 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 ...

  3. 20171110面试笔记 服务器端程序员+C/C++开发

    socket 模型: https://www.cnblogs.com/nsnow/archive/2011/05/03/2036017.html http://blog.csdn.net/normal ...

  4. Java高级数据类型转换:包装类、String字符串、Date类等与其他类型转换

    1.包装类过渡类型转换 一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了.例如: 当希望把float型转换为double型时: float f1=1 ...

  5. arcgis server地图服务切片(10.4.1)

    首先要发布地图服务,过程略 首先,熟悉arcgis server的人应该知道,最直接的切片方式操作方法是在“服务属性”中设置切片,但这种方式可操作性太差,很多设置无法实现,因此不推荐 下面正式开始,打 ...

  6. neo4j图形数据库Java应用

    CREATE (陈冠希:明星 {名称: "陈冠希"}), (王菲:明星 {名称: "王菲"}), (李亚鹏:明星 {名称: "李亚鹏"}), ...

  7. Web学习之JS总结

    银角大王武Sir的博客地址 银角大王武Sir的博客地址二 1.Javascript的作用域链 由于javascript没有块级作用域,而且每个函数作为一个作用域,如果出现嵌套函数,则就会出现作用域链 ...

  8. css图像拼合技术(精灵图)

    CSS图像拼合技术 1.图像拼合 图像拼合技术就是单个图像的集合. 有很多图片的网页可能会需要很多时间来加载和生成多个服务器的请求. 使用图像拼合会降低服务器的请求数量,并节省带宽. 图像拼合实例 有 ...

  9. ArrayList,Vector, LinkedList的存储性能和特性?

    ArrayList,Vector, LinkedList的存储性能和特性? ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入或删除时非常麻烦. ...

  10. 【leetcode】1073. Adding Two Negabinary Numbers

    题目如下: Given two numbers arr1 and arr2 in base -2, return the result of adding them together. Each nu ...