Git使用教程(1)-CentOS搭建Git伺服器
一、Git簡介
Git是Linux建立人Linus Torvalds為了管理Linux 核心開發而開發的一個開源的分散式版本管理軟體。它和SVN的區別主要有以下幾點:
1、分散式
SVN是集中式,如果網路或伺服器出了問題,將不能提交任何改動。而使用Git,則開發者可以隨時提交程式碼到本地,即使網路或伺服器出了故障,Git仍然能在本地正常工作,可以待之後再把改動一次性提交到伺服器;
2、分支管理
對SVN來說,一個分支其實就是一個目錄,佔用空間較大。而Git使用檔案差異化管理,即使開再多分支仍然是同一個目錄,節約空間,而且在不同分支之間可以快速切換;
3、適用場景
相較來說,SVN適合做專案管理,而Git則更適合做程式碼管理;
二、伺服器搭建步驟
要開始使用Git做程式碼管理,需要分別配置伺服器和客戶端。本文主要講述如何配置Git伺服器。以CentOS7.4伺服器為例:
1、首先在伺服器上安裝Git;
yum install -y git
安裝完成後,可以通過以下命令檢視版本號。
git –version
2、建立git使用者
建立一個名為git的使用者,用來執行git服務,同時建立git使用者的主目錄為/home/git。
useradd -d /home/git -m git
3、建立一個空的倉庫test.git
進入git使用者目錄
cd /home/git
git init –bare test.git
4、更改目錄許可權
因為此時是以root身份登入的,則建立後預設許可權都屬於root,所以需要把test.git和所有子目錄的owner都改為git,客戶端pull和push才不會出現許可權問題。
chown -R git:root test.git
5、禁用Git使用者的shell登陸
出於安全考慮,建議禁用shell登入,使git使用者只能讀寫程式碼,不能shell登入。可以通過編輯 /etc/passwd 檔案完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
此時客戶端其實已經可以抓取Git倉庫了,但每次都要輸入使用者名稱和密碼,顯然太麻煩了,所以使用金鑰管理方式,避免每次重複輸入密碼。
6、建立金鑰檔案
在git使用者的工作目錄下建立.ssh目錄,在.ssh目錄下建立authorized_keys檔案,並設定許可權為600。
cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
至此,Git伺服器端基本配置完成,接下來請看下一篇:客戶端配置。