最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbuntu系统中搭建了下git的服务器,由于搭建过程中多多少少遇到了一些小问题,再因为个人记性不太好,所以在这里记录下来,以备不时之需。开始我已经在虚拟机的ubuntu12.04系统下已经装过一次,忘了记录,这次重新再在虚拟机的ubuntu13.10系统下一步一步的来搭建,后面介绍包括了在客户端机器(宿主机器win7)安装git客户端,及客户端git bash的简单使用。
一、安装git服务器所需软件
打开终端输入以下命令:
[sql] view plaincopyprint?
1. ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client
git-core是git版本控制核心软件
安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件
然后中间有个确认操作,输入Y后等待系统自动从镜像服务器中下载软件安装,安装完后会回到用户当前目录。如果
安装提示失败,可能是因为系统软件库的索引文件太旧了,先更新一下就可以了,更新命令如下:
[sql] view plaincopyprint?
1. ubuntu:~$ sudo apt-get update
更新完软件库索引后继续执行上面的安装命令即可。
安装python的setuptools和gitosis,由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python 的setuptools。 执行下面的命令:
[sql] view plaincopyprint?
1. ubuntu:~$ sudo apt-get install python-setuptools
这个工具比较小,安装也比较快,接下来准备安装gitosis,安装gitosis之前需要初始化一下服务器的git用户信息,这个 随便填。
[sql] view plaincopyprint?
1. ubuntu:~$ git config --global user.name \
2. ubuntu:~$ git config --global user.email \
初始化服务器用户信息后,就可以安装gitosis了,gitosis主要是用于给用户授权,设置权限也算是很方便的。 可以通过以下命令获取gitosis版本文件
[sql] view plaincopyprint?
1. ubuntu:~$ git clone https://github.com/res0nat0r/gitosis.git
注意:中间有两个是数字零
获取gitosis文件后,进入到文件目录下面
[sql] view plaincopyprint?
1. ubuntu:/tmp$ cd gitosis/
接着使用python命令安装目录下的setup.py的python脚本进行安装
[sql] view plaincopyprint?
1. ubuntu:/tmp/gitosis$ sudo python setup.py install
到这里,整个安装步骤就完成了,下面就开始对git进行一些基本的配置。
二、创建git管理员账户、配置git
创建一个账户(git)作为git服务器的管理员,可以管理其他用户的项目权限。
[sql] view plaincopyprint?
1. ubuntu:/tmp/gitosis$ sudo useradd -m git 2. ubuntu:/tmp/gitosis$ sudo passwd git
然后再/home目录下创建一个项目仓库存储点,并设置只有git用户拥有所有权限,其他用户没有任何权限。
[sql] view plaincopyprint?
1. ubuntu:/tmp/gitosis$ sudo mkdir /home/gitrepository
2. ubuntu:/tmp/gitosis$ sudo chown git:git /home/gitrepository/ 3. ubuntu:/tmp/gitosis$ sudo chmod 700 /home/gitrepository/
由于gitosis默认状态下会将仓库放在用户的repositories目录下,例如git用户的仓库地址默认在
/home/git/repositories/目录下,这里我们需要创建一个链接映射。让他指向我们前面创建的专门用于存放项目 的仓库目录/home/gitrepository。
[sql] view plaincopyprint?
1. ubuntu:/tmp/gitosis$ sudo ln -s /home/gitrepository /home/git/repositories
这里我将在服务器端生成ssh公钥,如果想在其他机器上管理也可以在其他机器上生成一个ssh的公钥。
[sql] view plaincopyprint?
1. ubuntu:/home/git$ ssh-keygen -t rsa
这里会提示输入密码,我们不输入直接回车即可。
然后用刚生成公钥id_rsa.pub来对gitosis进行初始化。