1. 程式人生 > >基於centos搭建gitlab以及設定無密碼訪問

基於centos搭建gitlab以及設定無密碼訪問

1.1 git與gitlab

GIT(分散式版本控制系統), 是一個開源的分散式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。

Gitlab是使用Git作為程式碼管理工具,並在此基礎上搭建起來的web服務。

下面介紹二者的搭建,可以按需選擇其中一種搭建。

1.2 服務端搭建(基於CentOS)

1.2.1搭建git服務

(1)安裝git

# yum -y install git

(2)檢視git版本

# git --version

CentOS7 預設安裝的是Git 1.8.3.1

(3)建立git目錄和一個空git倉庫

# cd /

# mkdir git

# cd git

# git init --bare test.git

到此一個簡單的Git伺服器倉庫就建立完成

(4)建立git執行使用者並設定密碼

# useradd git
# passwd git

因為伺服器上的Git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把使用者git的許可權變為可讀:

# chown -R git:git test.git

禁用shell登入,出於安全考慮,建立的git使用者不允許登入shell,這可以通過終端編輯/etc/passwd檔案完成。

# vi /etc/passwd

找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

1.2.2搭建gitlab

以下的yum源均屬於網路源

(1)安裝和配置必要的依賴關係

# sudo yum install curl policycoreutils openssh-server openssh-clients
# sudo systemctl enable sshd
# sudo systemctl start sshd
# sudo yum install postfix
# sudo systemctl enable postfix
# sudo systemctl start postfix
# sudo firewall-cmd --permanent --add-service=http
# sudo systemctl reload firewalld

(2) 新增GitLab包伺服器和安裝包

# sudo yum install gitlab-ce

(3) 配置和啟動 GitLab

# sudo gitlab-ctl reconfigure

(4)登陸IP配置

(5)關閉gitlab的自動啟動
# systemctl disable gitlab-runsvdir.service

(6) 開啟gitlab的自動啟動

# systemctl enable gitlab-runsvdir.service
# systemctl start gitlab-runsvdir.service
# gitlab-cmd start

1.3 客戶端的基本使用

1.3.1 基本使用

常用操作如下:

1.獲取一個url對應的遠端Git repo, 建立一個local copy.

# git clone <URL>

2 .檢視修改更新了哪些檔案
# git status
3 .新增檔案
# git add <*>
4.檢視已經添加了的檔案
# git status

5. 抓取遠端倉庫所有分支更新併合併到本地

# git pull

6. 檢視遠端伺服器地址和倉庫名稱

# git remote -v

7.從版本庫中刪除檔案

# git rm <file>

1.3.2 客戶端無密碼訪問

背景:

Git使用https協議,每次pull, push都要輸入密碼,比較麻煩。
使用git協議,然後使用ssh金鑰。這樣可以省去每次都輸密碼。

大概需要三個步驟:

  1. 本地生成祕鑰

首先先確認一下是否已經有一個公鑰了。SSH 公鑰預設儲存在賬戶的主目錄下的 ~/.ssh 目錄。

# cd ~/.ssh 

# ls

關鍵是看有沒有用 something 和 something.pub 來命名的一對檔案,這個 something 通常就是 id_dsa 或 id_rsa。有 .pub 字尾的檔案就是公鑰,另一個檔案則是金鑰。假如沒有這些檔案,或者乾脆連 .ssh 目錄都沒有,可以用 ssh-keygen 來建立。

# ssh-keygen

一直回車即可

  1. 新增公鑰到你的github帳戶

檢視公鑰

# cat ~/.ssh/id_rsa.pub

登陸github帳戶點選 SSH Keys -> 點選 Add SSH key

然後你複製上面的公鑰內容,貼上進“Key”文字域內。 title域,你隨便填一個都行。

完了,點選 Add key。

  1. 修改你本地的ssh remote url

編輯remote url. 使其不用https協議,改用git 協議

可以使用瀏覽器登陸你的github,在上面可以看到你的ssh協議相應的url

# vi /home/ecloud/.git/config

1.3.3 解決衝突的常用方法

本地檔案與伺服器端檔案不同步時,執行git會抱錯

常用的解決辦法就算讓服務端檔案完全覆蓋本地

# git checkout 報錯檔案路徑