我們將git服務部署到linux伺服器上,往往出於以下的目的:
那麼可以依照下面的步驟搭建乙個簡單使用的git伺服器
一,安裝git服務
這裡以centos系統為例,執行命令
yum install git -y
ubuntu/debian系統下執行命令
apt-get install git -y
檢視版本可以看到成功安裝
[root@centos74 pyx]# git --version
git version 1.8.3.1
二,準備git賬戶
git服務不同於apache,mysql一樣需要在後台不停執行
它基於ssh協議,任何賬號都可以使用,比如使用者foo在伺服器example.com的家目錄(home/foo)下建立了乙個倉庫bar,那麼可以使用下面的命令轉殖這個倉庫
git clone [email protected]:bar
這裡通常使用git作為預設賬戶,使用下面的命令新增賬戶,並設定密碼
useradd git
passwd git
切換到git賬戶並回到家目錄
su git
cd ~
執行下面的命令生產公私鑰,並將公鑰的內容複製到檔案 authorized_keys 中,目的是讓git賬戶可以訪問自己簡歷的倉庫
如果是從其他賬號或者外部主機訪問該倉庫,同樣也需要將其他賬戶的公鑰追加到authorized_keys檔案中
ssh-keygen -t rsa -c [email protected]
git config --global user.name lich4ung
git config --global user.email [email protected]
touch ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
我寫了乙個一鍵建立倉庫的指令碼 mkrepo.sh,接受兩個引數:
倉庫名稱,執行後會在家目錄(/home/git)建立乙個同名資料夾,這就是倉庫
鉤子指定的分支名稱,當有更新推送到該分支時,會自動更新該分支**
其內容如下:
#!/usr/bin/env bash
repository_name=$1
branch_name=$2
if [ "" = "$" ]; then
branch_name="master"
ficd ~
mkdir $
cd $
git --bare init
cd hooks
echo "#!/usr/bin/env bash
# 專案所在目錄
basedir=/srv/webroot/# 專案名稱
name=$
# post-receive 分支
branch_name=$
workspace=\$/\$/
git_dir=\$/.git
git_work_tree=\$
if [ ! -d \$ ]; then
cd \$
git clone [email protected]:\$
cd \$
git checkout \$
else
cd \$
figit pull origin \$
" >> post-receive
chmod a+x post-receive
使用示例:
# demo 是倉庫名, 更新分支 master
./mkrepo.sh demo
# 同上
./mkrepo.sh demo master
# 執行更新 feature 分支
./mkrepo.sh demo feature
檢視demo倉庫下的鉤子檔案 ~/demo/hooks/post-receive ,可以看到下面的內容,可以知道鉤子的本質就是shell指令碼
[git@centos74 ~]$ cat /home/git/demo/hooks/post-receive
#!/usr/bin/env bash
# 專案所在目錄
basedir=/srv/webroot/
# 專案名稱
name=dede
# post-receive 分支
branch_name=master
workspace=$/$/
git_dir=$/.git
git_work_tree=$
if [ ! -d $ ]; then
cd $
git clone [email protected]:$
cd $
git checkout $
else
cd $
figit pull origin $
三,準備部署資料夾
在上面提到的指令碼中,我們看到了乙個資料夾(/srv/webroot),這就是乙個部署資料夾,
當給demo倉庫推送feature分支時更新乙份**到, /srv/webroot/demo 就會自動更新乙份源**
但在使用前需保證該目錄存在,且git賬戶具有所有權,使用root賬戶執行下面的指令碼
mkdir -p /srv/webroot
chown -r git.git /srv/webroot
Linux下搭建git服務
第一步,安裝git sudo apt get install git 第二步,初始化git倉庫 先選定乙個目錄作為git倉庫,假定是 srv gitstock mylinuxgittest.git,在 srv gitstock目錄下輸入命令 sudo git init bare mylinuxgit...
Git 伺服器搭建(Linux)
ubuntu debian sudo apt get install git 二 建立乙個單獨的 git使用者 sudo useradd m git sudo passwd git yourpassword 三 然後,在新建的git使用者主目錄下建立乙個資料夾作為git的倉庫,並為這個倉庫配備最基本...
Linux搭建git伺服器
總結本人在linux伺服器上搭建git伺服器遇到的 問題,ps 基於centos 在伺服器上安裝git伺服器 yum install git 建立git使用者 useradd d home git git passwd git 給git使用者設定密碼 zhangmx520 賦予ssh許可權 vi e...