上一篇文章 介紹了如何在CentOS7上 搭建GIT環(huán)境 詳見鏈接:http://www.reibang.com/p/a73c9d9779ea
本章主要介紹git如何和wdcp搭配 , 做到實時提交修改
如果按照網(wǎng)上常見的教程, 一般都是要新建git用戶和用戶組, 而wdcp里站點默認的用戶是www組里的www用戶, 如果強制把站點用戶改成git , 很多項目會無法正常運行, 所以本章就介紹如果以www這個用戶作為git的默認用戶, 并實現(xiàn)git的倉庫和代碼分離
一. 需要給www用戶創(chuàng)建用戶目錄
wdcp中www用戶默認的用戶目錄,指向的是dev/null, 我們需要修改成和自己創(chuàng)建的git用戶生成的用戶目錄同級的目錄 /home/www
如果原來已經(jīng)創(chuàng)建過用戶 只需要在/home文件夾中新建 www文件夾??
cp /home/user1 /home/www
未創(chuàng)建過用戶的 先創(chuàng)建一個屬于www組的用戶 然后把目錄拷貝下就行了
adduser -g www aaa
cp /home/aaa /home/www
userdel git
二.? 修改用戶設置? 設置www的用戶目錄
vi /etc/passwd
找到www用戶? 修改成如下?
www:x:xxx:xxx::/home/www:/usr/local/git/bin/git-shell
/home/www這是是用戶目錄,/usr/local/git/bin/git-shell 這個要設置成自己的git安裝的地址, 表示不允許www用戶使用ssh登錄,只能使用git的相關命令
三.? 創(chuàng)建.ssh 目錄,?
www用戶是wdcp安裝時候就生成的, 我們并不清楚是否有密碼, 也不能確定是否能設置密碼, 所以這里不用密碼登錄, 使用RSA驗證
cd /home/www/
mkdir .ssh #新建文件夾
chmod 700 .ssh
touch .ssh/authorized_keys #新建文件
chmod 600 .ssh/authorized_keys
后續(xù)用戶只需要向authorized_keys中添加自己的公鑰
四? 創(chuàng)建git倉庫并添加git的鉤子文件
cd /home/www
git init --bare test.git #創(chuàng)建一個空倉庫 倉庫名字叫 test
cd test.git/hooks
vi post-receive? #git接收到用戶提交的提交更新后 會執(zhí)行此文件中的內(nèi)容
寫入下面內(nèi)容??--work-tree 代表代碼文件夾 --git-dir? 代表倉庫目錄
#!/bin/sh
git --work-tree=/www/web/test/public_html/addons/aaa --git-dir=/home/www/test.git checkout -f
保存后 記得要改權(quán)限 需要有可執(zhí)行權(quán)限
chmod? 777 /home/www/test.git/hooks/post-receive
這樣就把倉庫和實際代碼區(qū)域分開了? 每當有改動提交到倉庫, 就會自動檢出到實際代碼文件夾
五? 修改倉庫文件夾所有者為www
chown www:www -R?/home/www/test.git
就是說要保證--work-tree 代碼文件夾和--git-dir? 倉庫文件夾的所有者一致? wdcp站點的默認所有者是www 所以這里把倉庫文件夾的所有者也修改成www
六? 本地使用
git clone www@your-ip:test.git
這里就是要用www用戶了
剩下的就是正常的git使用了??
此教程的要點 實際只有一個 就是要保證git倉庫的所有者 和 實際代碼文件夾的所有者一致 這樣才能做到實時的更新項目源碼?
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
服務器上執(zhí)行 可以直接把項目文件添加到倉庫?