接著昨天的活,我們寫好的markdown文件要傳到./_posts/文件夾下,然後由jekyll生成,所以我們要用到git來幫助我們同步文件。(當然ftp/sftp/rsync也可以,但是用git聽說可以裝13)首先就需要在vps上搭一個git倉庫gitosis。
1、安裝python-setuptools
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.7.tar.gz
tar zxvf setuptools-1.1.7.tar.gz
cd setuptools-1.1.7
python setup.py build
python setup.py install
2、安裝git
yum -y install git
3、安裝gitosis
git clone https://github.com/tv42/gitosis.git #獲取最新gitosis
cd gitosis #進入gitosis文件夾
python setup.py install
4、生成rsa公鑰和私鑰
ssh-keygen -t rsa #生成密鑰,一路回車即可,不需要密碼
cp ~/.ssh/id_rsa.pub /tmp/id_rsa.pub #將公鑰.pub文件復制到tmp文件夾下
5、初始化gitosis
useradd git #新增git用戶
su - git #切換到git用戶下進行
gitosis-init < /tmp/id_rsa.pub #剛剛把id_rsa.pub放在/tmp目錄主要原因是此目錄所有人都有權限的
rm /tmp/id_rsa.pub #OK,id_rsa.pub已無用了,可以刪除了
6、獲取並配置gitosis管理員
su - root #切換回root用戶在根下進行
git clone git@localhost:gitosis-admin.git #次步驟如果報錯,可以使用下面的
#git clone git@localhost:/home/git/repositories/gitosis-admin.git
gitosis的配置就基本完成了, gitosis-admin/gitosis.conf就是倉庫的配置文件,需要添加新項目或者修改項目對應用戶都通過它修改。
下面舉一些實際的例子:
在git倉庫添加一個lalala項目,項目成員為test
首先修改gitosis-admin/gitosis.conf文件,在文件後面加入:
[group 組名]
writable = 項目名 #一般為要新建的代碼庫的名字
members = 成員名 #成員名必須與keydir文件夾下的.pub公鑰一致;可以有多個成員,用空格進行分割
組名隨意,項目名填lalala,成員填test,保存退出。
把配置文件push到倉庫中
git add .
git commit -am "add project lalala"
git push git@localhost:gitosis-admin.git master
假設成員test在另一台機器使用,則先在那台生成ssh-keygen -t rsa,把生成的id_rsa.pub放到上面gitosis-admin/keydir目錄下,並改名為test.pub(文件名跟成員名保持一致,.pub不能省略)。然後再git push一下,之後test就有訪問項目lalala的權限了。
然後在test的本地機器執行:
mkdir lalala
cd lalala
git init
touch test.txt
git add .
git commit -am "add test.txt"
git push git@your-gitosis-server:lalala.git master
test本地就建成lalala項目了。
至於多用戶訪問一個項目,只需要在gitosis.conf裡面添加名字,然後把對應的id_rsa.pub放入keydir就可以了。
如果想在git push完成後執行系統命令,那麼可以用到hook功能。
更多用法請自行google- -