1. 程式人生 > >Git使用教程(1)-CentOS搭建Git伺服器

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伺服器端基本配置完成,接下來請看下一篇:客戶端配置。