git服務器的搭建是非常簡單的。
1. 安裝git
一般服務器都自帶git。如果嫌版本低,可以選擇卸載重裝。我覺得自帶的就夠了。
2. 創建用戶git
groupadd git
adduser git -g git
3. 創建authorized_keys文件
cd /home/git mkdir .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys cd /home chown -R git:git git
要注意的是文件權限和所屬用戶。
(后續的git clone如果需要密碼,很有可能是git用戶沒有訪問authorized_keys文件的權限)
4. 客戶端創建密鑰並上傳
看清楚了,要在客戶端運行如下命令。
ssh-keygen -t rsa -C "your_email"
該命令會產生兩個文件: id_rsa對應私鑰,id_rsa.pub對應公鑰。
將id_rsa.pub中的內容寫到服務器的authorized_keys文件中。
如果有多個客戶端,那么在authorized_keys文件中,一行保存一個客戶端的公鑰。
5. 創建git倉庫
為了方便管理,所有的git倉庫都置於同一目錄下,假設為/home/gitrepo,
cd /home mkdir gitrepo chown git:git gitrepo
接下來,創建我們的第一個git倉庫:sample.git,
cd gitrepo
git init --bare sample.git
最后一步,把倉庫所屬用戶改為git。
chown -R git:git sample.git
到此,git服務器搭建完畢。
PS:
以后每創建一個新的倉庫,記得最后一步操作: 修改倉庫所屬用戶為git。
參考資料:
Git 服務器搭建
-------------------------
1. 查看系統用戶組
-d:指定字段的分隔符,默認的字段分隔符為“TAB”; -f:顯示指定字段的內容; cut -d: -f1 /etc/group
2. 查看系統用戶
cut -d: -f1 /etc/passwd
3. clone倉庫
git clone git@your_gitServer_ip:/home/gitrepo/sample.git
4. push已有倉庫
// 以master分支示范 git checkout master git remote rm origin git remote add origin git@your_gitServer_ip:/home/gitrepo/sample.git git push -u origin master