Linux下GitLab的安裝及使用


一、初始GitLab
?

GitLab是利用Ruby on Rails一個開源的版本管理系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。
與Github類似,GitLab能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。
它還提供一個代碼片段收集功能可以輕松實現代碼復用,便于日后有需要的時候進行查找。


Git的家族成員
?

Git:是一種版本控制系統,是一個命令,是一種工具。
Gitlib:是用于實現Git功能的開發庫。
Github:是一個基于Git實現的在線代碼托管倉庫,包含一個網站界面,向互聯網開放。
GitLab:是一個基于Git實現的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似于Github一樣的系統,一般用于在企業、學校等內部網絡搭建git私服。

?

二、實驗環境(rhel7.3版本)
1、selinux和firewalld狀態為disabled

2、各主機信息如下:

主機ip
server1(git)172.25.83.1

?

三、Gitlab常用命令
?

gitlab-ctl start   #啟動所有gitlab組件;
gitlab-ctl stop   #停止所有gitlab組件; 
gitlab-ctl restart   #重啟所有gitlab組件; 
gitlab-ctl status   #查看服務狀態; 
gitlab-ctl reconfigure   #修改配置文件之后,重新加載gitlab配置文件并啟動所有gitlab組件
vim /etc/gitlab/gitlab.rb   #修改默認的配置文件; 
gitlab-rake gitlab:check SANITIZE=true --trace   #檢查gitlab; 
gitlab-ctl tail   #查看日志;
gitlab-ctl --help   #查看gitlab命令的幫助


?

四、部署GitLab
?

1、下載并安裝Gitlab社區版軟件:gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm

[root@server1 ~]# ls
gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
[root@server1 ~]# yum install gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm -y ? #安裝GitLab社區版。ce表示社區版,ee表示企業版

2、編輯配置文件/etc.gitlab/gitlab.rb

[root@server1 ~]# vim /etc/gitlab/gitlab.rb?13 external_url 'http://172.25.83.1' ? #訪問gitlab的地址
[root@server1 ~]# gitlab-ctl reconfigure ? #重載服務,過程較長耐心等待



重載服務之后,查看啟動的所有的gitlab組件


[root@server1 salt]# gitlab-ctl status
run: alertmanager: (pid 1300) 275s; run: log: (pid 1298) 275s
run: gitaly: (pid 1293) 275s; run: log: (pid 1292) 275s
run: gitlab-monitor: (pid 1297) 275s; run: log: (pid 1296) 275s
run: gitlab-workhorse: (pid 1285) 275s; run: log: (pid 1284) 275s
run: logrotate: (pid 1280) 275s; run: log: (pid 1279) 275s
run: nginx: (pid 1289) 275s; run: log: (pid 1288) 275s
run: node-exporter: (pid 1287) 275s; run: log: (pid 1286) 275s
run: postgres-exporter: (pid 1302) 275s; run: log: (pid 1301) 275s
run: postgresql: (pid 1278) 275s; run: log: (pid 1274) 275s
run: prometheus: (pid 1299) 275s; run: log: (pid 1294) 275s
run: redis: (pid 1277) 275s; run: log: (pid 1273) 275s
run: redis-exporter: (pid 1291) 275s; run: log: (pid 1290) 275s
run: sidekiq: (pid 3104) 90s; run: log: (pid 1281) 275s
run: unicorn: (pid 1276) 275s; run: log: (pid 1275) 275s


?

3、登錄gitlab http://172.25.83.1

?

用戶:root 第一次登錄需要強制修改密碼(密碼至少要8位)

用修改過后的密碼進行login

4、創建Project

?

<1>安裝Git工具linux:安裝Git,使用自帶的源安裝。—其實在之前配置Git本地倉庫時已經做過這步,這里不需要再做

[root@server1 ~]# yum install git -y


?

<2>生成密鑰文件:使用ssh-keygen生成密鑰文件.ssh/id_rsa.pub—其實在之前配置Git本地倉庫與Github遠程倉庫關聯時已經做過這步,這里不需要再做

[root@server1 ~]# ssh-keygen
[root@server1 ~]# ls .ssh/
id_rsa ?id_rsa.pub ?

<3>在GitLab的主頁中新建一個Project

?

在web界面點擊“Create??a??project”:

在Project??name中填入要創建的項目的名稱(我這里創建的項目的名稱是test),勾選Initialize this repository with a README,這樣GitHub會自動為我們創建一個README.md文件。創建完畢后,可以看到README.md文件,并點擊“Create project“創建工程

根據提示,我們點擊橙色字體的“add??an??SSH??key”,進行SSH??key的添加

[root@server1 ~]# cd .ssh/
[root@server1 .ssh]# cat id_rsa.pub?
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3xeeqOavrqvenQHbGkepogV1YbggV/086mA28HX1iXe3MVXIKt9+1gBJdN8lmhUz9HPgADPBhaOfM3jgP459lf9bFBqd0x5doOA+JN0LtEiM0K4kSQ8yb3ViExN8iqLd4jxVhcjIuPmHfD+JhEG0iGJ79tXNL3m7GlONNq7lODvNuquq5kUK2u7/9cJfI9Bmow8lX92qxF0jz82n73UeYOvCh1069vWDVbONCUB7lJMdXQPC2XPfelyuWmDGExxdUqM4xLcTBBFx5XsMyjQvA+zljytYKphgNEO3hC0hWGxKnEw4R5U/stAROBG/W+nNzkupoWGFjIo1Zax52PY+x root@server1


點擊Add key

5、克隆項目test,在本地生成同名目錄,并且目錄中會有所有的項目文件

?

<1>進入創建的test項目主界面


點擊Your??projects

點擊Administrator / test

<2>將Gitlab上的遠程項目test克隆到本地

[root@server1 ~]# git clone git@172.25.83.1:root/test.git ? #在哪個目錄下執行該命令都可以,我這里想把克隆到本地的test項目放在root用戶的家目錄下,所以我這里在root用戶的家目錄下執行該名林。
Cloning into 'test'...
The authenticity of host '172.25.83.1 (172.25.83.1)' can't be established.
ECDSA key fingerprint is 36:fe:bc:26:f8:92:25:e4:b6:f3:d3:54:dc:06:a5:c0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.83.1' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@server1 ~]# ls
test


?

注意把Git庫的地址換成你自己的,然后進入test目錄看看,已經有README.md文件了:

[root@server1 ~]# cd test/
[root@server1 test]# ls
README.md
[root@server1 test]# cat README.md?
# test


?

6、我們可以在本地項目test中編輯內容,并將內容推送到Gitlab遠程項目test下

?

<1>添加git用戶信息—其實在之前配置Git本地倉庫時已經做過這步,這里不需要再做

[root@server1 demo]# git config --global user.name xjj ? #設置用戶名
[root@server1 demo]# git config --global user.email xjj@xjj.com ? #設置用戶郵箱


?

[root@server1 ~]# pwd
/root
[root@server1 ~]# cat .gitconfig?
[user]name = xjjemail = xjj@xjj.com

<2>創建需要上傳到GitLab中的目標文件

[root@server1 test]# pwd
/root/test
[root@server1 test]# echo www.xin.com > index.html ? #必須在項目目錄test下執行該命令
[root@server1 test]# cat index.html?
www.xin.com


?

<3>將index.html文件加入到索引中

[root@server1 test]# git add index.html

<4>將index.html提交到本地倉庫

[root@server1 test]# git commit -m "add index.html"
[master 9bcf5d2] add index.html1 file changed, 1 insertion(+)create mode 100644 index.html

<5>將文件同步到GitLab服務器上

[root@server1 test]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@172.25.83.1:root/test.gitdf45c1d..9bcf5d2 ?master -> master
Branch master set up to track remote branch master from origin.


?

<6>在網頁中查看上傳的index.html文件已經同步到GitLab中

點擊index.html


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386673.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試大廠應該注意哪些問題?隔壁都饞哭了

前言 說起程序員人們的第一印象就是工資高、加班兇、話少錢多頭發少。再加上現在科技互聯網公司太吃香&#xff0c;bat、華為小米等公司程序員加班情況被廣泛傳播&#xff0c;程序員用生命在敲代碼的印象刻在了很多人的心里。 與其它行業一樣&#xff0c;凡是有高級和普通&…

元類(metaclass)

目錄 一、引言二、什么是元類三、為什么用元類四、內置函數exec(儲備)五、class創建類5.1 type實現六、自定義元類控制類的創建6.1 應用七、__call__(儲備)八、__new__(儲備)九、自定義元類控制類的實例化一十、自定義元類后類的繼承順序十一、練習一、引言 元類屬于python面向…

Linux環境下使用rpm包安裝GitLab

1.安裝依賴環境 [rootgitlab ~]# yum install curl openssh-server postfix cronie 2.下載安裝GitLab包 我安裝的環境是Red Hat Enterprise Linux Server release 7.4 (Maipo) GitLab下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 以上是清華大學開源…

面試字節跳動Android工程師該怎么準備?深度解析,值得收藏

前言 Android高級架構師需要學習哪些知識呢&#xff1f; 下面總結一下我認為作為一個資深開發者需要掌握的技能點。 1.Android開發的幾個階段 我的10年開發生涯中&#xff0c;有9年都是做Android相關開發&#xff0c;以我個人的經歷來看&#xff0c;Android開發市場分為以下…

以JSONobject形式提交http請求

總結一下設置圖標的三種方式&#xff1a; &#xff08;1&#xff09;button屬性&#xff1a;主要用于圖標大小要求不高&#xff0c;間隔要求也不高的場合。 &#xff08;2&#xff09;background屬性&#xff1a;主要用于能夠以較大空間顯示圖標的場合。 &#xff08;3&#xf…

阿里巴巴Android面試都問些什么?系列篇

Google 為了幫助 Android 開發者更快更好地開發 App&#xff0c;推出了一系列組件&#xff0c;這些組件被打包成了一個整體&#xff0c;稱作 Android Jetpack&#xff0c;它包含的組件如下圖所示&#xff1a; 老的 support 包被整合進了 Jetpack&#xff0c;例如上圖 Foundatio…

安裝容器編排工具 Docker Compose

安裝容器編排工具 Docker Compose curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose 授權&#xff1a; chmod x /usr/local/bin/docker-compose 查看安裝結果 docker-com…

docker-compose安裝elk7.1.1版本

在用docker-compose編排elk三個服務時&#xff0c;碰到了很多坑&#xff0c;網上很多資料編排的版本都不是最新的版本&#xff0c;我們這里用的 elasticsearch&#xff0c;logstash&#xff0c;kibana全都是elastic官方提供的目前最新版本7.1.1&#xff0c;高版本和低版本的一些…

阿里P8成長路線!我的頭條面試經歷分享,吊打面試官系列!

正式加入字節跳動&#xff0c;分享一點面試小經驗 今天正式入職了字節跳動。工號超吉利&#xff0c;尾數是3個6。然后辦公環境也很好&#xff0c;這邊一棟樓都是辦公區域。公司內部配備各種小零食、飲料&#xff0c;還有免費的咖啡。15樓還有健身房。而且公司包三餐來著。下午…

實驗十一:圖形界面二

實驗程序如下&#xff1a;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Example1 extends JFrame { private int add1,sub2,mul3,div4; private int op0; boolean ifOp; private String output"0"; private Button[] jbanew Button…

Docker安裝部署ELK教程 (Elasticsearch+Kibana+Logstash)

Elasticsearch 是個開源分布式搜索引擎&#xff0c;它的特點有&#xff1a;分布式&#xff0c;零配置&#xff0c;自動發現&#xff0c;索引自動分片&#xff0c;索引副本機制&#xff0c;restful風格接口&#xff0c;多數據源&#xff0c;自動搜索負載等。 Logstash 是一個完…

阿里P8面試官都說太詳細了,面試資料分享

背景 知乎客戶端中有一個自己維護的 Hybrid 框架&#xff0c;在此基礎上開發了一些 Hybrid 頁面&#xff0c;當需要前端或者客戶端開發接口的時候&#xff0c;就涉及到聯調的問題。 和一般的 前端 <> 服務端&#xff0c;或者 客戶端 <> 服務端 類似&#xff0c;前…

virtual和override

偶然間看到的題&#xff0c;借此記錄。 class Program{static void Main(string[] args){D d new D(); //第一個D是申明類&#xff0c;第二個D是實例類A a d;B b d;C c d;a.F();b.F();c.F();d.F();}class A{public virtual void F() { Console.WriteLine("A.F")…

阿里內部資料!如何試出一個Android開發者真正的水平?系列教學

前言 馬爸爸總結了一句話&#xff1a;跳槽&#xff0c;要么是錢不到位&#xff0c;要么是受了委屈。 我給自己這次的跳槽經歷做了一個分析&#xff0c;希望能對那些想換工作的朋友有所幫助。 許多朋友想換工作&#xff0c;但是對“換工作”的理解可能僅限于寫簡歷、投簡歷、…

CentOS7 linux下yum安裝redis以及使用

CentOS7 linux下yum安裝redis以及使用 1.安裝redis數據庫 1 yum install redis 2.下載fedora的epel倉庫 yum install epel-release 3.啟動redis服務 systemctl start redis 4.查看redis狀態 systemctl status redis systemctl stop redis 停止服務 systemctl restart r…

Codeforces 1182A Filling Shapes

題目鏈接&#xff1a;http://codeforces.com/problemset/problem/1182/A 思路&#xff1a;n為奇數時不可能完全填充&#xff0c;ans 0。發現若要完全填充&#xff0c;每倆列可產生倆種情況&#xff0c;所以為 ans 2n/2 AC代碼&#xff1a; 1 #include<bits/stdc.h>2 us…

阿里大神最佳總結Flutter進階學習筆記,技術詳細介紹

開頭 很多人工作了十年&#xff0c;但只是用一年的工作經驗做了十年而已。 高級工程師一直是市場所需要的&#xff0c;然而很多初級工程師在進階高級工程師的過程中一直是一個瓶頸。 移動研發在最近兩年可以說越來越趨于穩定&#xff0c;因為越來越多人開始學習Android開發&…

Mysql 允許所有IP訪問

$ mysql -u root -p Enter password:mysql> use mysql#mysql> GRANT ALL ON *.* to root192.168.1.4 IDENTIFIED BY your-root-password; mysql> GRANT ALL ON *.* to root% IDENTIFIED BY root; mysql> FLUSH PRIVILEGES;

貪心算法小結2

F-Ants 一隊螞蟻在一根水平桿上行走&#xff0c;每只螞蟻固定速度 1cm/s. 當一只螞蟻走到桿的盡頭時&#xff0c;立即從稈上掉落. 當兩只螞蟻相遇時它們會掉頭向相反的方向前進. 我們知道每只螞蟻在桿上的初始位置, 但是, 我們不知道螞蟻向哪個方向前行. 你的任務是計算所有螞蟻…

掌握這些Android開發熱門前沿知識,跳槽薪資翻倍

前言 這是一篇軟文、但是絕對不是雞湯&#xff1b;為啥不是呢&#xff1f;因為我文筆太差…偶爾矯情發發牢騷&#xff08;勿噴&#xff09; 說說程序猿行業 現在社會上給IT行業貼上了幾個標簽&#xff1a;高薪、高危、高大上、禿頂&#xff08;哈哈&#xff09;。這些標簽我…