红联Linux门户
Linux帮助

Ubuntu 14.04配置gitosis和gitweb

发布时间:2016-04-20 15:27:27来源:linux网站作者:zhbpd

1.sudo apt-get install git-core openssh-server openssh-client python-setuptools


2.创建git用户

sudo useradd -d /app/git -m git

sudo passwd git


3.创建git用户密钥

su git

ssh-keygen -t rsa -b 4096

git config --global user.name "git"
git config --global user.email "git@test.com"


4.install gitosis

cd /tmp
#git clone https://github.com/res0nat0r/gitosis.git

git clone https://github.com/tv42/gitosis

cd gitosis
sudo python setup.py install


5.配置 gitosis

su git

gitosis-init < ~/.ssh/id_rsa.pub
Initialized empty Git repository in /mnt/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /mnt/git/repositories/gitosis-admin.git/ 

cd ~

mkdir myrepo

cd myrepo

git clone git@localhost:gitosis-admin.git

将git用户的 ssh key 的 pub 文件复制到 gitosis-admin/keydir/ 目录下。然后编辑 gitosis.conf 文件,将 pub 文件名加到gitosis-admin 的members中,

然后提交修改,新用户就有了远程clone gitosis-admin的权限,然后可以添加新的仓库。

git add keydir/xxx.pub

git commit -am "add new user xxx."

git push origin master


6.回到用户机器上,

git clone git@xxxx:gitosis-admin.git

克隆完毕。

创建工程

cd gitosis-admin

vim gitosis.conf

添加内容:

[group dev]

members = xxx

writable = proj1

然后保存文件提交上库。

mkdir proj1

cd proj1

git init

echo "1st time create." > readme.txt

git add .

git commit -am "1st time create."

git remote add origin master git@xxxx:proj1.git

git push origin master

这样就提交到服务器上内容了。


7.gitweb 配置

sudo apt-get install gitweb apache2

sudo vim /etc/gitweb.conf

修改 $projectroot = "/app/git/repositories";

$projects_list = $projectroot;


8.服务器修改apache 配置

sudo cp /etc/apache2/conf.d/gitweb /etc/apache2/conf-available/gitweb.conf 
cd /etc/apache2/conf-enabled 
sudo ln -s ../conf-available/gitweb.conf
sudo vim /etc/apache2/conf-available/gitweb.conf

注意唯一修改就是下面的红色 + 号:

Alias /gitweb /usr/share/gitweb

<Directory /usr/share/gitweb>
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
</Directory>
然后保存退出

sudo a2enmod cgid
sudo service apache2 restart

然后客户机浏览器打开 http://xxxx/gitweb/就可以看到工程列表了。

如果出现 404 错误,那是权限问题

sudo chmod -R 775 /app/git/repositories

然后重启 apache 刷新浏览器即可看到创建的工程了。

如果想让某些工程不显示在 gitweb 中,则需要修改

sudo vim /etc/gitweb.conf 

$projects_list = "/app/git/gitosis/projects.list";

然后编辑 gitosis-admin 中的 gitosis.conf文件,编辑工程:

[repo proj1]

daemon = yes

gitweb = yes

或者

[repo proj1]

daemon = yes

gitweb = no

然后重启 apache2 即可。

要美化gitweb显示,更换主题:http://kogakure.github.io/gitweb-theme/


本文永久更新地址:http://www.linuxdiyf.com/linux/19930.html