在本文中,我們的目的是讓你了解如何設置屬于自己的Git服務器。--
有用的原文鏈接請訪問文末的“原文鏈接”獲得可點擊的文內鏈接、全尺寸原圖和相關文章。
致謝編譯自|
作者|
譯者| 共計翻譯:6篇 貢獻時間:167 天
在本文中,我們的目的是讓你了解如何設置屬于自己的Git服務器。
Git[1]是由Linux 開發[2]的一個版本控制系統,現如今正在被全世界大量開發者使用。許多公司喜歡使用基于 Git 版本控制的 代碼托管。根據報道, 是現如今全世界最大的代碼托管網站[3]。 宣稱已經有 920 萬用戶和 2180 萬個倉庫。許多大型公司現如今也將代碼遷移到 上。甚至于谷歌,一家搜索引擎公司,也正將代碼遷移到 上[4]。
運行你自己的 Git 服務器
能提供極佳的服務,但卻有一些限制,尤其是你是單人或是一名 愛好者。 其中之一的限制就是其中免費的服務沒有提供代碼私有托管業務。你不得不支付每月 7 美金購買 5 個私有倉庫,并且想要更多的私有倉庫則要交更多的錢。
萬一你想要私有倉庫或需要更多權限控制,最好的方法就是在你的服務器上運行 Git。不僅你能夠省去一筆錢,你還能夠在你的服務器有更多的操作。在大多數情況下,大多數高級 Linux 用戶已經擁有自己的服務器,并且在這些服務器上方式 Git 就像“啤酒一樣免費”(LCTT 譯注:指免費軟件)。
在這篇教程中,我們主要講在你的服務器上,使用兩種代碼管理的方法。一種是運行一個純 Git 服務器,另一個是使用名為[6]的 GUI 工具。在本教程中,我在 VPS 上運行的操作系統是 14.04 LTS。
在你的服務器上安裝 Git
在本篇教程中,我們考慮一個簡單案例,我們有一個遠程服務器和一臺本地服務器,現在我們需要使用這兩臺機器來工作。為了簡單起見,我們就分別叫它們為遠程服務器和本地服務器。
首先,在兩邊的機器上安裝 Git。你可以從依賴包中安裝 Git,在本文中,我們將使用更簡單的方法:
sudo apt-get install git-core
為 Git 創建一個用戶。
sudo useradd git
passwd git
為了容易的訪問服務器,我們設置一個免密 ssh 登錄。首先在你本地電腦上創建一個 ssh 密鑰:
ssh-keygen -t rsa
這時會要求你輸入保存密鑰的路徑電腦做本地服務器,這時只需要點擊回車保存在默認路徑。第二個問題是輸入訪問遠程服務器所需的密碼。它生成兩個密鑰——公鑰和私鑰。記下您在下一步中需要使用的公鑰的位置。
現在您必須將這些密鑰復制到服務器上,以便兩臺機器可以相互通信。在本地機器上運行以下命令:
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
現在,用ssh登錄進服務器并為 Git 創建一個項目路徑。你可以為你的倉庫設置一個你想要的目錄。
現在跳轉到該目錄中:
cd /home/swapnil/project-1.git
現在新建一個空倉庫:
git init --bare
Initialized empty Git repository in /home/swapnil/project-1.git
現在我們需要在本地機器上新建一個基于 Git 版本控制倉庫:
mkdir -p /home/swapnil/git/project
進入我們創建倉庫的目錄:
cd /home/swapnil/git/project
現在在該目錄中創建項目所需的文件。留在這個目錄并啟動git:
git init
Initialized empty Git repository in /home/swapnil/git/project
把所有文件添加到倉庫中:
git add .
現在,每次添加文件或進行更改時,都必須運行上面的add命令。 您還需要為每個文件更改都寫入提交消息。提交消息基本上說明了我們所做的更改。
git commit -m "message" -a
[master (root-commit) 57331ee] message
2 files changed, 2 insertions(+)
create mode 100644 GoT.txt
create mode 100644 writing.txt
在這種情況下,我有一個名為 GoT(《權力的游戲》的點評)的文件,并且我做了一些更改,所以當我運行命令時,它指定對文件進行更改。 在上面的命令中-a選項意味著提交倉庫中的所有文件。 如果您只更改了一個,則可以指定該文件的名稱而不是使用-a。
舉一個例子:
git commit -m "message" GoT.txt
[master e517b10] message
1 file changed, 1 insertion(+)
到現在為止,我們一直在本地服務器上工作。現在我們必須將這些更改推送到遠程服務器上,以便通過互聯網訪問,并且可以與其他團隊成員進行協作。
git remote add origin ssh://git@remote-server/repo-
>path-on-server..git
現在,您可以使用pull或push選項在服務器和本地計算機之間推送或拉取:
git push origin master
如果有其他團隊成員想要使用該項目電腦做本地服務器,則需要將遠程服務器上的倉庫克隆到其本地計算機上:
git clone git@remote-server:/home/swapnil/project.git
這里/home//.git是遠程服務器上的項目路徑,在你本機上則會改變。
然后進入本地計算機上的目錄(使用服務器上的項目名稱):
cd /project
現在他們可以編輯文件,寫入提交更改信息,然后將它們推送到服務器:
git commit -m 'corrections in GoT.txt story' -a
然后推送改變:
git push origin master
我認為這足以讓一個新用戶開始在他們自己的服務器上使用 Git。 如果您正在尋找一些 GUI 工具來管理本地計算機上的更改,則可以使用 GUI 工具,例如 QGit 或 GitK for Linux。
使用
這是項目所有者和協作者的純命令行解決方案。這當然不像使用 那么簡單。不幸的是,盡管 是全球最大的代碼托管商,但是它自己的軟件別人卻無法使用。因為它不是開源的,所以你不能獲取源代碼并編譯你自己的 。這與 或 不同,您無法下載 并在您自己的服務器上運行它。
像往常一樣,在開源世界中,是沒有終結的盡頭。 是一個非常優秀的項目。這是一個開源項目,允許用戶在自己的服務器上運行類似于 的項目管理系統。
您可以使用 為團隊成員或公司運行類似于 的服務。您可以使用 在公開發布之前開發私有項目。
采用傳統的開源商業模式。他們有兩種產品:免費的開源軟件,用戶可以在自己的服務器上安裝,以及類似于 的托管服務。
可下載版本有兩個版本,免費的社區版和付費企業版。企業版基于社區版,但附帶針對企業客戶的其他功能。它或多或少與 或 提供的服務類似。
社區版具有高度可擴展性,可以在單個服務器或群集上支持 25000 個用戶。 的一些功能包括:Git 倉庫管理,代碼評論,問題跟蹤,活動源和維基。它配備了 CI,用于持續集成和交付。
Ocean 等許多 VPS 提供商會為用戶提供 服務。 如果你想在你自己的服務器上運行它,你可以手動安裝它。 為不同的操作系統提供了軟件包。 在我們安裝 之前,您可能需要配置 SMTP 電子郵件服務器,以便 可以在需要時隨時推送電子郵件。官方推薦使用 。所以,先在你的服務器上安裝 :
sudo apt-get install postfix
在安裝 期間,它會問你一些問題,不要跳過它們。 如果你一不小心跳過,你可以使用這個命令來重新配置它:
sudo dpkg-reconfigure postfix
運行此命令時,請選擇 “ Site”并為使用 的域名提供電子郵件 ID。
我是這樣輸入的:
xxx@x.com
用 Tab 鍵并為 創建一個用戶名。接下來將會要求你輸入一個目標郵箱。
在剩下的步驟中,都選擇默認選項。當我們安裝且配置完成后,我們繼續安裝 。
我們使用wget來下載軟件包(用最新包[7]替換下載鏈接):
wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb
然后安裝這個包:
sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb
現在是時候配置并啟動 了。
sudo gitlab-ctl reconfigure
您現在需要在配置文件中配置域名,以便您可以訪問 。打開文件。
nano /etc/gitlab/gitlab.rb
在這個文件中編輯并輸入服務器域名。保存文件,然后從 Web 瀏覽器中打開新建的一個 站點。
默認情況下,它會以系統管理員的身份創建root,并使用5iveL!fe作為密碼。 登錄到 站點,然后更改密碼。
密碼更改后,登錄該網站并開始管理您的項目。
有很多選項和功能。最后,我借用電影“黑客帝國”中的經典臺詞:“不幸的是,沒有人知道 可以做什么。你必須親自嘗試一下。”
via:
作者: [9]選題:譯者:校對:wxy
本文由LCTT原創編譯,Linux中國榮譽推出