歡迎光臨
每天分享高質量文章

搭建屬於你自己的 Git 伺服器 | Linux 中國

在本文中,我們的目的是讓你瞭解如何設定屬於自己的Git伺服器。
— Swapnil Bhartiya


致謝
編譯自 | 
https://www.linux.com/learn/how-run-your-own-git-server
 
 作者 | Swapnil Bhartiya
 譯者 | wyxplus ? ? 共計翻譯:6 篇 貢獻時間:167 天

在本文中,我們的目的是讓你瞭解如何設定屬於自己的Git伺服器。

Git[1] 是由 Linux Torvalds 開發[2]的一個版本控制系統,現如今正在被全世界大量開發者使用。許多公司喜歡使用基於 Git 版本控制的 GitHub 程式碼託管。根據報道,GitHub 是現如今全世界最大的程式碼託管網站[3]。GitHub 宣稱已經有 920 萬使用者和 2180 萬個倉庫。許多大型公司現如今也將程式碼遷移到 GitHub 上。甚至於谷歌,一家搜尋引擎公司,也正將程式碼遷移到 GitHub 上[4]

執行你自己的 Git 伺服器

GitHub 能提供極佳的服務,但卻有一些限制,尤其是你是單人或是一名 coding 愛好者。GitHub 其中之一的限制就是其中免費的服務沒有提供程式碼私有託管業務。你不得不支付每月 7 美金購買 5 個私有倉庫,並且想要更多的私有倉庫則要交更多的錢。

萬一你想要私有倉庫或需要更多許可權控制,最好的方法就是在你的伺服器上執行 Git。不僅你能夠省去一筆錢,你還能夠在你的伺服器有更多的操作。在大多數情況下,大多數高階 Linux 使用者已經擁有自己的伺服器,並且在這些伺服器上方式 Git 就像“啤酒一樣免費”(LCTT 譯註:指免費軟體)。

在這篇教程中,我們主要講在你的伺服器上,使用兩種程式碼管理的方法。一種是執行一個純 Git 伺服器,另一個是使用名為 GitLab[6] 的 GUI 工具。在本教程中,我在 VPS 上執行的作業系統是 Ubuntu 14.04 LTS。

在你的伺服器上安裝 Git

在本篇教程中,我們考慮一個簡單案例,我們有一個遠端伺服器和一臺本地伺服器,現在我們需要使用這兩臺機器來工作。為了簡單起見,我們就分別叫它們為遠端伺服器和本地伺服器。

首先,在兩邊的機器上安裝 Git。你可以從依賴包中安裝 Git,在本文中,我們將使用更簡單的方法:

  1. sudo apt-get install git-core

為 Git 建立一個使用者。

  1. sudo useradd git

  2. passwd git

為了容易的訪問伺服器,我們設定一個免密 ssh 登入。首先在你本地電腦上建立一個 ssh 金鑰:

  1. ssh-keygen -t rsa

這時會要求你輸入儲存金鑰的路徑,這時只需要點選回車儲存在預設路徑。第二個問題是輸入訪問遠端伺服器所需的密碼。它生成兩個金鑰——公鑰和私鑰。記下您在下一步中需要使用的公鑰的位置。

現在您必須將這些金鑰複製到伺服器上,以便兩臺機器可以相互通訊。在本地機器上執行以下命令:

  1. cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

現在,用 ssh 登入進伺服器併為 Git 建立一個專案路徑。你可以為你的倉庫設定一個你想要的目錄。

現在跳轉到該目錄中:

  1. cd /home/swapnil/project-1.git

現在新建一個空倉庫:

  1. git init --bare

  2. Initialized empty Git repository in /home/swapnil/project-1.git

現在我們需要在本地機器上新建一個基於 Git 版本控制倉庫:

  1. mkdir -p /home/swapnil/git/project

進入我們建立倉庫的目錄:

  1. cd /home/swapnil/git/project

現在在該目錄中建立專案所需的檔案。留在這個目錄並啟動 git

  1. git init

  2. Initialized empty Git repository in /home/swapnil/git/project

把所有檔案新增到倉庫中:

  1. git add .

現在,每次新增檔案或進行更改時,都必須執行上面的 add 命令。 您還需要為每個檔案更改都寫入提交訊息。提交訊息基本上說明瞭我們所做的更改。

  1. git commit -m "message" -a

  2. [master (root-commit) 57331ee] message

  3. 2 files changed, 2 insertions(+)

  4. create mode 100644 GoT.txt

  5. create mode 100644 writing.txt

在這種情況下,我有一個名為 GoT(《權力的遊戲》的點評)的檔案,並且我做了一些更改,所以當我執行命令時,它指定對檔案進行更改。 在上面的命令中 -a 選項意味著提交倉庫中的所有檔案。 如果您只更改了一個,則可以指定該檔案的名稱而不是使用 -a

舉一個例子:

  1. git commit -m "message" GoT.txt

  2. [master e517b10] message

  3. 1 file changed, 1 insertion(+)

到現在為止,我們一直在本地伺服器上工作。現在我們必須將這些更改推送到遠端伺服器上,以便透過網際網路訪問,並且可以與其他團隊成員進行協作。

  1. git remote add origin ssh://git@remote-server/repo->path-on-server..git

現在,您可以使用 pull 或 push 選項在伺服器和本地計算機之間推送或拉取:

  1. git push origin master

如果有其他團隊成員想要使用該專案,則需要將遠端伺服器上的倉庫克隆到其本地計算機上:

  1. git clone git@remote-server:/home/swapnil/project.git

這裡 /home/swapnil/project.git 是遠端伺服器上的專案路徑,在你本機上則會改變。

然後進入本地計算機上的目錄(使用伺服器上的專案名稱):

  1. cd /project

現在他們可以編輯檔案,寫入提交更改資訊,然後將它們推送到伺服器:

  1. git commit -m 'corrections in GoT.txt story' -a

然後推送改變:

  1. git push origin master

我認為這足以讓一個新使用者開始在他們自己的伺服器上使用 Git。 如果您正在尋找一些 GUI 工具來管理本地計算機上的更改,則可以使用 GUI 工具,例如 QGit 或 GitK for Linux。

使用 GitLab

這是專案所有者和協作者的純命令列解決方案。這當然不像使用 GitHub 那麼簡單。不幸的是,儘管 GitHub 是全球最大的程式碼託管商,但是它自己的軟體別人卻無法使用。因為它不是開源的,所以你不能獲取原始碼並編譯你自己的 GitHub。這與 WordPress 或 Drupal 不同,您無法下載 GitHub 併在您自己的伺服器上執行它。

像往常一樣,在開源世界中,是沒有終結的盡頭。GitLab 是一個非常優秀的專案。這是一個開源專案,允許使用者在自己的伺服器上執行類似於 GitHub 的專案管理系統。

您可以使用 GitLab 為團隊成員或公司執行類似於 GitHub 的服務。您可以使用 GitLab 在公開釋出之前開發私有專案。

GitLab 採用傳統的開源商業樣式。他們有兩種產品:免費的開源軟體,使用者可以在自己的伺服器上安裝,以及類似於 GitHub 的託管服務。

可下載版本有兩個版本,免費的社群版和付費企業版。企業版基於社群版,但附帶針對企業客戶的其他功能。它或多或少與 WordPress.org 或 WordPress.com 提供的服務類似。

社群版具有高度可擴充套件性,可以在單個伺服器或群集上支援 25000 個使用者。GitLab 的一些功能包括:Git 倉庫管理,程式碼評論,問題跟蹤,活動源和維基。它配備了 GitLab CI,用於持續整合和交付。

Digital Ocean 等許多 VPS 提供商會為使用者提供 GitLab 服務。 如果你想在你自己的伺服器上執行它,你可以手動安裝它。GitLab 為不同的作業系統提供了軟體包。 在我們安裝 GitLab 之前,您可能需要配置 SMTP 電子郵件伺服器,以便 GitLab 可以在需要時隨時推送電子郵件。官方推薦使用 Postfix。所以,先在你的伺服器上安裝 Postfix:

  1. sudo apt-get install postfix

在安裝 Postfix 期間,它會問你一些問題,不要跳過它們。 如果你一不小心跳過,你可以使用這個命令來重新配置它:

  1. sudo dpkg-reconfigure postfix

執行此命令時,請選擇 “Internet Site”併為使用 Gitlab 的域名提供電子郵件 ID。

我是這樣輸入的:

  1. xxx@x.com

用 Tab 鍵併為 postfix 建立一個使用者名稱。接下來將會要求你輸入一個標的郵箱。

在剩下的步驟中,都選擇預設選項。當我們安裝且配置完成後,我們繼續安裝 GitLab。

我們使用 wget 來下載軟體包(用 最新包[7] 替換下載連結):

  1. wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb

然後安裝這個包:

  1. sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb

現在是時候配置並啟動 GitLab 了。

  1. sudo gitlab-ctl reconfigure

您現在需要在配置檔案中配置域名,以便您可以訪問 GitLab。開啟檔案。

  1. nano /etc/gitlab/gitlab.rb

在這個檔案中編輯 external_url 並輸入伺服器域名。儲存檔案,然後從 Web 瀏覽器中開啟新建的一個 GitLab 站點。

預設情況下,它會以系統管理員的身份建立 root,並使用 5iveL!fe 作為密碼。 登入到 GitLab 站點,然後更改密碼。

密碼更改後,登入該網站並開始管理您的專案。

GitLab 有很多選項和功能。最後,我借用電影“駭客帝國”中的經典臺詞:“不幸的是,沒有人知道 GitLab 可以做什麼。你必須親自嘗試一下。”


via: https://www.linux.com/learn/how-run-your-own-git-server

作者:Swapnil Bhartiya[9] 選題:lujun9972 譯者:wyxplus 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂