一、Gitlab简介

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

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

功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。

版本:GitLab 分为社区版(CE) 和企业版(EE)。

配置:建议CPU2核,内存2G以上。

Gitlab的服务构成:

1)Nginx:静态web服务器。

2)gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby)

3)gitlab-workhorse: 轻量级的反向代理服务器。(go)

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

4)logrotate:日志文件管理工具。

5)postgresql:数据库。

6)redis:缓存数据库。

7)sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)

8)unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)

管理的命令:

gitlab-ctl stop            #停止所有gitlab组件

gitlab-ctl start            #启动所有gitlab组件

gitlab-ctl restart         #重启所有gitlab组件

gitlab-ctl status          #查看服务状态

gitlab-ctl reconfigure        #重新编译gitlab的配置(执行 reconfigure 命令会把gitlab的nginx组件的配置还原,导致自定义修改的端口以及域名等都没有了。)

vim /etc/gitlab/gitlab.rb            #修改gitlab配置文件

gitlab-rake gitlab:check SANITIZE=true --trace              #检查gitlab

gitlab-ctl tail              #查看日志

二、gitlab安装及使用

第一步:安装gitlab

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

第二步:修改配置文件

在文件11行左右把主机名修改为主机IP地址

[root@ren5 ~]# vim /etc/gitlab/gitlab.rb

########################################

11 external_url 'http://192.168.11.5'

#############################################

注释行#的含义:

1.不生效

2.默认值

第三步:重新配置(是配置生效,需要一定的时间)

启动gitlab的时候80端口不能被占用!

[root@ren5 ~]# gitlab-ctl reconfigure          #重新配置

[root@ren5 ~]# ss -tnl

[root@ren5 ~]# lsof -i :80

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx   9629       root    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

nginx   9630 gitlab-www    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

[root@ren5 ~]# firewall-cmd --add-port=80/tcp                      #添加防火墙端口

[root@ren5 ~]# firewall-cmd --add-port=80/tcp --permanent

第四步:浏览器访问

直接输入服务器IP即可访问

需要输入新的密码,密码长度需要8位(change your password)

把Admin换成root,密码就是刚才设置的密码,点击sign in

第五步:gitlab使用

在windows中可以通过创建用户,创建项目组,创建项目来新建一个项目

在Linux中的使用

[root@ren5 ~]# mkdir rrr        #创建根目录

[root@ren5 ~]# cd rrr

[root@ren5 rrr]# yum -y install git

[root@ren5 rrr]# git clone http://192.168.11.5/root/first-project.git      #克隆远程仓库

[root@ren5 rrr]# ls

first-project

[root@ren5 rrr]# cd first-project/

[root@ren5 first-project]# ls -a

.  ..  .git

[root@ren5 first-project]# touch {1..5}.txt        #更新文件

[root@ren5 first-project]# echo "111111111111" > 1.txt

[root@ren5 first-project]# ls

1.txt  2.txt  3.txt  4.txt  5.txt

[root@ren5 first-project]# git add .             #工作目录内容上传到暂存区域

[root@ren5 first-project]# git commit -m "v1"         #把暂存区内容添加到仓库

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@ren5.(none)')

[root@ren5 first-project]# git config --global user.email "you@example.com"

[root@ren5 first-project]# git config --global user.name "Your Name"      #认证

[root@ren5 first-project]# git commit -m "v1"         #重新提交

[master(根提交) d5aee1b] v1

5 files changed, 1 insertion(+)

create mode 100644 1.txt

create mode 100644 2.txt

create mode 100644 3.txt

create mode 100644 4.txt

create mode 100644 5.txt

[root@ren5 first-project]# git branch          #查看分支

* master

[root@ren5 first-project]# git push -u origin master        #把本地内容推送至远程仓库

Username for 'http://192.168.11.5': root             #输入用户名

Password for 'http://root@192.168.11.5':          #输入密码

[root@ren5 first-project]# git branch hello        #创建新的分支

[root@ren5 first-project]# git checkout hello            #切换到新分支

切换到分支 'hello'

[root@ren5 first-project]# touch test && echo "hello world" > test     #添加测试文件

[root@ren5 first-project]# git add .     #添加至暂存区

[root@ren5 first-project]# git commit -m "v2"         #添加至仓库

[root@ren5 first-project]# git push -u origin hello           #推送至远程仓库

三、linux当中免密使用gitlab

在上面我们每次登录gitlab都要输入名字和密码很麻烦,故可以使用密钥SSH来推送。

第一步:生成密钥

ssh-keygen

第二步:复制公钥信息

[root@ren5 first-project]# cat /root/.ssh/id_rsa.pub

第三步:粘贴到web服务端profile-settings的ssh-keys中

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

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

注意:拉取的时候指定的是ssh地址不再是http地址!

四、window中免密使用gitlab

第一步:准备文件

你需要首先在网上下载下面的这个客户端工具:Git-2.7.2-32-bit_setup.1457942412.exe

第二步:安装

第三步:创建一个文件夹作为工作目录并进入目录之后;右击鼠标有两个选项,一个是bash一个是图形化

第四步:生成秘钥信息,进行免密登录;在这个界面输入ssh-keygen一直点回车生成秘钥信息

第五步:把公钥信息输入到web服务端;可以从上面的信息中看到秘钥信息保存在哪了,现在我们去c盘找;复制这个公钥里面的信息

第六步:本地下载仓库;使用git clone 加上你的项目ssh信息

第七步:本地查看;发现已经有了仓库信息了,现在你就可以开始写程序了

第八步:测试;进入到包含.git的目录并在此右击打开bash,执行创建分支操作,并建立test.txt测试文件

第九步:上传文件;和linux中一样执行上传命令

第十步:在web中查看;可以看到我们刚才在window中创建的文件也已经被上传上来了

转载于:https://www.cnblogs.com/renyz/p/11368933.html

linux进阶之gitlab仓库搭建及免密使用相关推荐

  1. idea集成gitlab使用ssh免密登录

    网上有很多介绍ssh免密登录的文章,具体步骤如下: 1. 生成SSH Key ssh-keygen -t rsa -C "your_email@example.com"  默认会在 ...

  2. linux如何自动化部署脚本实现免密登录并访问资源

    任务把weijie主机jdk文件安装到weijie1中. 首先再各台主机中安装必要的命令: expect.wget.httpd.ssh 执行命令 如:expect提示命令不存在,则分别安装命令 yum ...

  3. linux操作系统-SSH原理介绍与免密运用与远程命令操作

    PS:运用好SSH,对管理众多服务器可以带来极大的便利.当我们从一台服务器访问另一台服务器,我们可以输入密码访问,并不影响效率.但是当我们需要访问多台服务器,或者几十上百台的时候就有点麻烦了.或者对几 ...

  4. linux搭建sftp服务器并设置免密登录

    参考资料:linux环境快速搭建sftp服务以及设置免密 - 渐逝的星光 - 博客园 (cnblogs.com) 网上很多搭建sftp的文章,最后免密登录设置都有点问题,研究了一下终于通了,做个记录 ...

  5. 通过ssh远程登录linux的原理过程和配置免密登录

    1.总结通过ssh远程登录linux的原理过程 基于口令的认证 客户端和服务端建立TCP连接 协商阶段 双方进行ssh版本协商 密钥协商阶段 在服务器端生成一对密钥,将公钥传递给客户端,客户端将密钥C ...

  6. linux实现机器之间的账号免密登陆

    2019独角兽企业重金招聘Python工程师标准>>> 日常的开发或者维护过程中,服务端的同学经常需要用公共账号登陆其他机器进行操作,或者是因为一些原因需要从另外一个机器下载或者上传 ...

  7. Linux操作之多台服务器配置免密登录

    在进行多台服务器的使用时,如果每个都去进行输密码的话很麻烦,为了简单一点,我们可以配置多台服务器之间的免密登录,这个免密登录是多台服务器之间相互登录是免密的. 概述 我这里配置的是三态服务器(虚拟服务 ...

  8. linux使用同一密钥对实现互相免密登录

    准备两台主机 192.168.191.133   192.168.191.121 先在133主机上生成密钥信息 [root@zabbix ~]# ssh-keygen -t rsa -P '' -f ...

  9. [linux] redhat 7 ssh 安装配置免密登录

    安装ssh yum install openssh 查看端口 netstat -ntpl netstat -ntpl | grep :22 启动和关闭 service sshd restart/sta ...

  10. Gitlab 仓库搭建(详细版)

    目录 前言 一.gitlab 介绍 二.git和svn 的区别 1. 集中式vs分布式 2. 版本库与工作区 3. 全局版本号和全球版本号 4.部分检出和全局检出 5.更新和提交 三.Git和svn的 ...

最新文章

  1. Ubuntu 12.10 拨号上网及停用方法
  2. klock 分布式锁重大更新
  3. R语言使用fs包的file_copy函数、dir_copy函数、link_copy函数将文件、目录、超链接从一个位置拷贝(copy)到另一个位置
  4. 自绘列表框控件显示略缩图----再稍微改进点点。。
  5. 特征编码1 - 特征编码概述与分类
  6. Uber CEO亲自体验送外卖:三个半小时挣了106美元
  7. Vscode 如何使用内置浏览器?
  8. 著名设计师的标志(Logo)设计观
  9. [UI列表]LoopScrollRect无限滑动不卡顿
  10. python数值类型和序列类型_数值类型和序列类型(python)
  11. MATLAB地图作为底图,Matlab中自带地图绘制WorldMap详解
  12. 什么叫一层交换机,二层交换机,三层交换机?
  13. 【VMware的坑爹之路】VMware复制文件卡死死机;无法访问网络地址“*:\“
  14. Python - 怎么将一个数字拆分成多个随机数字
  15. Java学习lesson 15
  16. 微软服务器ip,微软服务器环境中的IP地址管理
  17. ORB_SLAM2新增稠密建图代码笔记
  18. springboot使用arthas-spring-boot-starter引入arthas方案
  19. Chapter5 生长因子、受体和癌症
  20. 铅酸电池充放电保护电路图

热门文章

  1. android 学习之URI
  2. 51cto案例精解第一章PPT
  3. 「leetcode」202. 快乐数:今天你快乐了么?
  4. hdu 1231最大连续子序列 动态规划
  5. poj Risk 1603 floyd基础题!!
  6. iOS开发之阿里百川、京东联盟、多多客联盟(拼多多)的接入
  7. iOS开发之Swift 4 JSON 解析指南
  8. Motion 5 for Mac(视频后期特效处理软件)
  9. 如何恢复出厂设置并还原Apple Silicon M1 Mac?
  10. Spring_day04--课程安排_回顾SSH框架知识点_SSH框架整合思想