Git服務器搭建+上傳代碼

git服務器搭建+上傳代碼

git服務器搭建

下載git

apt-get install git         //ubuntu

創建git專用用戶

sudo adduser git

創建登陸證書

將所有登陸用戶的id_rsa.pub中的公鑰放入/home/git/.ssh/authorized_keys文件內,一行一個。

創建一個倉庫

git init --bare myrepo.git

      裸倉庫中包含了.git倉庫的大部分內容,但是這隻個記錄記錄的目錄,並不對文件進行保存。不過這裏我用了普通的倉庫。

git init 

修改文件權限

      將/etc/passwd中的

git:x:1001:1001:,,,:/home/git:/bin/bash

修改爲

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

客戶端上傳代碼

clone

git clone git@serverIP:/REPO_PATH/

git hooks

      其實寫到這裏會有一個問題,這裏能clone下來,但是當git push時,會遇到服務器端只有log改變,但是沒有合併到主分支中。必須要用git reset –herd回退才行。所以我查閱了資料之後用git自己的hooks進行觸發接收事件:post-reveive。

#!/bin/sh
unset $(git rev-parse --local-env-vars)
cd /DESTINATION_PATH/
/usr/bin/git reset --hard

      這裏其實還會碰到一個問題,如果在shell腳本中直接寫:

cd /DESTINATION_PATH/
/usr/bin/git reset --hard

      是會無法達到效果的,因爲其實git操作會有GIT_DIR環境路徑的,所以需要unset去除環境變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章