主要参考
登录服务端,所有操作均可在服务器上完成
1. 创建git用户
bing@bing.srv$sudo adduser git
2. 使用当前用户创建ssh key
bing@bing.srv$ssh-keygen -t rsa
3. 拷贝公钥至git家目录并改名为git.pub
bing@bing.srv$sudo cp .ssh/id_rsa.pub /home/git/git.pub
4. 切换至git并切至git家目录
bing@bing.srv$su - git
git@bing.srv$cd ~
5. 安装git-core
git@bing.srv$sudo apt-get install git-core
6. 下载gitolite源码,如果git://无法下载请换用https://或者http://重试
git@bing.srv$git clone git://github.com/sitaramc/gitolite gitolite-source
7. 配备相关目录
git@bing.srv$mkdir -p ~/bin ~/share/gitolite/conf ~/share/gitolite/hooks
8. 安装gitolite.安装之前请仔细阅读gitolite-source下的install文件
####################################
Simplest use, if $HOME/bin exists and is in $PATH, is:
git clone git://github.com/sitaramc/gitolite
gitolite/install -ln
# now run setup
gitolite setup -pk /path/to/YourName.pub
######################################
因此我们可以直接使用以上命令安装
git@bing.srv$./gitolite-source/install
git@bing.srv$gitolite setup -pk git.pub
至此,配置基本结束
下面开始测试服务是否生效,并创建我们自己的仓库
1. 切换回自己的用户
git@bing.srv$exit
bing@bing.srv$cd ~
2. clone管理仓库
bing@bing.srv$git clone git@localhost:gitolite-admin.git
3. 添加仓库用户,当前待测仓库为默认创建的testing
bing@bing.srv$cp user.pub gitolite-admin/keydir
4. 推送及测试是否生效
bing@bing.srv$cd gitolite-admin; git push
5. 使用user.pub的电脑对testing进行clone.注意,当非管理员用户clone仓库时,不要在仓库前添加repositories路径
原因及解决办法参考如下链接
http://stackoverflow.com/questions/10429201/git-push-origin-denied-by-fallthru-hook-declined-gitolite
stackoverflow.com/questions/10283947/git-gitolite-error-push
http://sitaramc.github.com/gitolite/emergencies.html#ce
http://sitaramc.github.com/gitolite/sts.html#ybpfail
user@user.srv$git clone git@localhost:testing.git
6. clone完毕,修改,并推送回仓库
测试完毕
经测试,仓库使用者user为windows或linux用户时,均没有问题
更加详细内容,请参阅文章开头链接和gitolite官方文档http://sitaramc.github.com/gitolite/admin.html