搭建git服务器的4个步骤
1 配置服务器前的准备工作
首先ubuntu系统要联网 安装了git,openssh-server和openssh-client软件,并检测是否开启。
rpm -qa | grep -i git (查看是否安装git)
sudo apt-get install git
sudo apt-get install openssh-server
sudo apt-get install openssh-client
2 添加git 用户
新加用户git,该用户将作为所有代码仓库和用户权限的管理者:
geiao@ubuntu :$ sudo useradd -m git
geiao@ubuntu :\( sudo passwd git </p> <p>建立一个git仓库的存储点,并且设置权限使除了git以外的用户对此目录无任何访问权限。 </p> <p>geiao@ubuntu :~\) sudo mkdir /home/pro_j
(建立个目录,作为存储点。)
geiao@ubuntu :$ sudo chown git:git /home/pro_j
(把pro_j的权限给 git)
geiao@ubuntu :\( sudo chmod 755 /home/pro_j (将文件pro_j设置为 rwxr_xr_x 除了git以外的用户对此目录无任何访问权限) </p> <p>3 安装配置gitosis </p> <p>初始化服务器的git用户 可以用cat ~/.gitconfig 查看 </p> <p>geiao@ubuntu :~\) git config –global user.name “your name”
geiao@ubuntu :$ git config –global user.email your email
geiao@ubuntu :\( cat ~/.gitconfig </p> <p>[user] name = zhang mingjie </p> <p> email = </p> <p>安装一下python的setuptool,也是为gitosis做准备: </p> <p>geiao@ubuntu :~\) sudo apt-get install python-setuptools
获得gitosis包:
geiao@ubuntu :$ mkdir osis
geiao@ubuntu :\( cd osis </p> <p>geiao@ubuntu :~/osis\) git clone git://eagain.net/gitosis.git
注意:执行上步骤会出错
Cloning into gitosis…
eagain.net[0: 208.78.102.120]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
可使用:git clone https://github.com/res0nat0r/gitosis.git代替
geiao@ubuntu :/osis$ cd gitosis
geiao@ubuntu :/osis/gitosis\( sudo python setup.py install 默认状态下,gitosis会将git仓库放在git用户home下的repositories中,所以要做个链接: geiao@ubuntu :~/osis/gitosis\) su git
\( ln -s /home/pro_j /home/git/repositories </p> <p>\) exit
成为管理员:无论是不是本机都可以通过生成ssh公钥的方法成为管理员
geiao@ubuntu :$ ssh-keygen -t rsa 生成的密钥可以通过在~/.ssh 文件中找到。
在服务器上建管理员:
geiao@ubuntu :/osis/gitosis\( sudo chmod a+r ~/.ssh/id_rsa.pub </p> <p>[sudo] password for geiao: </p> <p>让gitosis运行起来: </p> <p>geiao@ubuntu :~/osis/gitosis\) sudo -H -u git gitosis-init< /.ssh/id_rsa.pub
Initialized empty Git repository in /home/pro_j/gitosis-admin.git/
Reinitialized existing Git repository in /home/pro_j/gitosis-admin.git/
如果在另外的一台机子上建管理员,必须把那台机子的公钥(改名)拷到服务器上 然后修改上面划线操作的地址就行了。
Gitosis 通过一个git仓库管理配置文件,仓库就放在/home/pro_j/gitosis-admin.git。因此要为一个文件加上可执行权限:
geiao@ubuntu :/home/git\( sudo passwd root </p> <p>geiao@ubuntu :/home/git\) su
root@ubuntu :/home/git# cd repositories
root@ubuntu :/home/git/repositories# cd gitosis-admin.git
root@ubuntu :/home/git/repositories/gitosis-admin.git# sudo chmod 755 /home/pro_j/gitosis-admin.git/hooks/post-update root@ubuntu :/home/git/repositories/gitosis-admin.git# exit
4 管理gitosis的配置文件
gitosis本身的配置也是通过git来实现的。在你自己的开发机里,把gitosis-admin.git这个仓库clone下来,就可以以管理员的身份修改配置了。
geiao@ubuntu :\( cd osis </p> <p>geiao@ubuntu :~/osis\) mkdir pro
geiao@ubuntu :/osis$ cd pro
geiao@ubuntu :/osis/pro\( git clone git@服务器ip:gitosis-admin.git </p> <p>geiao@ubuntu :~/osis/pro\) cd gitosis-admin
geiao@ubuntu :/osis/pro/gitosis-admin$ ls
gitosis.conf keydir
gitosis.conf文件和keydir文件夹
gitosi.conf文件主要的作用是管理员可以编写其他人的权限,可以编写对gitosis-admin的成员,也可以编写对仓库的权限 :writable和 readonly . 这里设置权限 可以建立group设置。
keydir 文件夹是存放其他人公钥的地方。而且必须注意 谁的公钥谁的名字的要求来存放。
geiao@ubuntu :/osis/pro/gitosis-admin/keydir\( ls jghost.pub 否则在会出现: </p> <p><span style="background-color:#ff0000;">ERROR:gitosis.serve.main:Repository read access denied</span> </p> <p><span style="background-color:#ff9900;">配置好后一定要做的操作事提交gitosis-admin的 改动,并commit 然后 git push 一下; 而且你不需要在服务器上建好一个空仓库,再导入项目。 Gitosis会在你建好项目推送到服务器上时自动创建。 然后就可以建立个项目 如proj.git(<span style="background-color:#ff0000;">这点比较重要</span>)</span> </p> <p>geiao@ubuntu :~/osis/pro\) mkdir proj
geiao@ubuntu :/osis/pro$ cd proj
geiao@ubuntu :/osis/pro/proj\( git init </p> <p>Initialized empty Git repository in /home/geiao/osis/pro/proj/.git/ </p> <p>geiao@ubuntu :~/osis/pro/proj\) touch README
geiao@ubuntu :/osis/pro/proj$ git add README
geiao@ubuntu :/osis/pro/proj\( git commit -a -m "add readme" </p> <p>geiao@ubuntu :~/osis/pro/proj\) git remote add origin git@10.10.4.229:proj.git
geiao@ubuntu :~/osis/pro/proj$ git push origin master
到此, 在ubuntu上建立git服务器基本上完成。
原文地址:http://blog.chinaunix.net/uid-20620288-id-3152615.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196748.html