三、Gitosis管理(權限管理建議使用這種方法)
伺服器端
1 安裝Gitosis
下載下傳Gitosis
wget https://github.com/res0nat0r/gitosis/archive/master.zip
(位址可以自己尋找合适的,上面位址下載下傳以後為master,需要改名為master.zip)
$unzip master.zip
$ cd gitosis-master
$ python setup.py install(root使用者)
$ cd gitosis
分類: Python/Ruby
ImportError: No module named setuptools 解決方案
shell中輸入:
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
初始化 Gitosis 了。需要通過自己的公鑰來運作 gitosis-init (git使用者)
useradd git
su - git
cd
cd /home/git
mkdir .ssh
ssh-keygen
$ gitosis-init < /home/git/.ssh/id_rsa.pub
将這個新的控制倉庫中的 postupdate腳本加上執行權限
$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update (root使用者)
測試是否配置正确
$ ssh
[email protected](git使用者)
輸出下面内容為正确
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to 192.168.1.83 closed.
$ git clone
[email protected]:gitosis-admin.git(若無法克隆,說明安裝有問題,不是絕對路徑)
$ cd gitosis-admin
$ ls
keydir 為放置公鑰的檔案路徑
gitosis.conf為配置權限目錄
$ cat gitosis.conf
預設内容:
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
Members = git@localhost
添加一個群組
[group myproject]
writable = melon_project
Members = melon (多個時候,空格分開)
----
生成密鑰,将公共密鑰 存為melon.pub (跟members相同),上傳到伺服器/home/git/gitosis-admin/melon.pub,儲存私鑰儲存
-----
$ git add .
$ git commit -m “message” .
$ git push
第一次需要通過這樣的方式生成項目倉庫
$ mkdir melon_p
$ cd melon_p
$ git init
$ git remote add origin
[email protected]:melon_project.git$ git push origin master (會提示沒有送出任何檔案,無所謂,這步會建立melon_project.git倉庫,也可以添加些檔案 再送出push)
之後,就可以在外部克隆倉庫了..
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIDOlFjM2YmNmFDOx0SN4IGOtMGN2MTL4czN10yNmBzM2QTMz8CX4QzM48CXxgDMw8CX05WZth2YhRHdh9CXkF2bsBXdvwVbvNmLllXZ0lmLywGZvw1LcpDc0RHaiojIsJye.png)
注意: 使用gitosis進行控制時,不能在url前面添加 ssh:// 添加了會無法克隆倉庫
基本的服務端和用戶端都已經實作了,可以用git來作為項目的版本控制了