阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu完美安装搭建Git服务器

144次阅读
没有评论

共计 4945 个字符,预计需要花费 13 分钟才能阅读完成。

最近公司项目需要用到 Git 来管理项目,正好逢周末花了点时间在虚拟机的 Ubuntu 系统中搭建了下 git 的服务器,由于搭建过程中多多少少遇到了一些小问题,再因为个人记性不太好,所以在这里记录下来,以备不时之需。开始我已经在虚拟机的 Ubuntu 12.04 系统下已经装过一次,忘了记录,这次重新再在虚拟机的 Ubuntu 13.10 系统下一步一步的来搭建,后面介绍包括了在客户端机器(宿主机器 Win7)安装 git 客户端,及客户端 git bash 的简单使用。

一、安装 git 服务器所需软件

打开终端输入以下命令:

ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client
git-core 是 git 版本控制核心软件

安装 openssh-server 和 openssh-client 是由于 git 需要通过 ssh 协议来在服务器与客户端之间传输文件

然后中间有个确认操作,输入 Y 后等待系统自动从镜像服务器中下载软件安装,安装完后会回到用户当前目录。如果

安装提示失败,可能是因为系统软件库的索引文件太旧了,先更新一下就可以了,更新命令如下:

ubuntu:~$ sudo apt-get update 

更新完软件库索引后继续执行上面的安装命令即可。

安装 Python 的 setuptools 和 gitosis,由于 gitosis 的安装需要依赖于 python 的一些工具,所以我们需要先安装 python

的 setuptools。

执行下面的命令:

ubuntu:~$ sudo apt-get install python-setuptools
这个工具比较小,安装也比较快,接下来准备安装 gitosis,安装 gitosis 之前需要初始化一下服务器的 git 用户信息, 这个随便填。

ubuntu:~$ git config –global user.name “myname”
ubuntu:~$ git config –global user.email “******@gmail.com”

初始化服务器用户信息后,就可以安装 gitosis 了,gitosis 主要是用于给用户授权,设置权限也算是很方便的。

可以通过以下命令获取 gitosis 版本文件

ubuntu:~$ git clone https://github.com/res0nat0r/gitosis.git
注意:中间有两个是数字零

获取 gitosis 文件后,进入到文件目录下面

ubuntu:/tmp$ cd gitosis/

接着使用 python 命令安装目录下的 setup.py 的 python 脚本进行安装

ubuntu:/tmp/gitosis$ sudo python setup.py install

到这里,整个安装步骤就完成了,下面就开始对 git 进行一些基本的配置。

二、创建 git 管理员账户、配置 git

创建一个账户(git)作为 git 服务器的管理员,可以管理其他用户的项目权限。

ubuntu:/tmp/gitosis$ sudo useradd -m git
ubuntu:/tmp/gitosis$ sudo passwd git

然后再 /home 目录下创建一个项目仓库存储点,并设置只有 git 用户拥有所有权限,其他用户没有任何权限。

ubuntu:/tmp/gitosis$ sudo mkdir /home/gitrepository
ubuntu:/tmp/gitosis$ sudo chown git:git /home/gitrepository/
ubuntu:/tmp/gitosis$ sudo chmod 700 /home/gitrepository/

由于 gitosis 默认状态下会将仓库放在用户的 repositories 目录下,例如 git 用户的仓库地址默认在 /home/git/repositories/ 目录下,这里我们需要创建一个链接映射。让他指向我们前面创建的专门用于存放项目的仓库目录 /home/gitrepository。

ubuntu:/tmp/gitosis$ sudo ln -s /home/gitrepository /home/git/repositories

这里我将在服务器端生成 ssh 公钥,如果想在其他机器上管理也可以在其他机器上生成一个 ssh 的公钥。

ubuntu:/home/git$ ssh-keygen -t rsa

这里会提示输入密码,我们不输入直接回车即可。

然后用刚生成公钥 id_rsa.pub 来对 gitosis 进行初始化。

Ubuntu 完美安装搭建 Git 服务器

出现如上信息说明 gitosis 已经初始化成功。

gitosis 主要是通过 gitosis-admin.git 仓库来管理一些配置文件的,如用户权限的管理。这里我们需要对其中的一个 post-update 文件添加可执行的权限。

ubuntu:/home/git$ sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update

三、服务器上创建项目仓库

使用 git 账户在服务器上创建一个目录(mytestproject.git)并初始化成 git 项目仓库。

ubuntu:/home/git$ su git
$ cd /home/gitrepository
$ mkdir mytestproject.git
$ git init –bare
$ exit

如果出现以下信息就说明已经成功创建了一个名为 mytestproject.git 的项目仓库了,新建的这个仓库暂时还是空的,不能被客户端 clone,还需要对 gitosis 进行一些配置操作。

四、使用 gitosis 管理用户操作项目的权限

首先需要在前面生成 ssh 公钥(用来初始化 gitosis)的机器上将 gitosis-admin.git 的仓库 clone 下来。

在客户端机器上新建一个目录用于存放 gitosis-admin.git 仓库

ubuntu:~$ mkdir gitadmin
ubuntu:~$ cd gitadmin/
ubuntu:~/gitadmin$ git clone git@192.168.1.106:gitosis-admin.git

clone 正确会显示以下信息

Ubuntu 完美安装搭建 Git 服务器

clone 下来会有一个 gitosis.conf 的配置文件和一个 keydir 的目录。gitosis.conf 用于配置用户的权限信息,keydir 主要用户存放 ssh 公钥文件(一般以“用户名.pub”命名,gitosis.conf 配置文件中需使用相同用户名),用于认证请求的客户端机器。

现在让需要授权的用户使用前面的方式各自在其自己的机器上生成相应的 ssh 公钥文件,管理员把他们分别按用户名命名好,复制到 keydir 目录下。

ubuntu:~$ cp /home/aaaaa/Desktop/zhangsan.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/

ubuntu:~$ cp /home/aaaaa/Desktop/lisi.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/

继续编辑 gitosis.conf 文件

[gitosis]

[group gitosis-admin]
#### 管理员组
members = charn@ubuntu
#### 管理员用户名,需要在 keydir 目录下找到相应的.pub 文件,多个可用空格隔开(下同)
writable = gitosis-admin#### 可写的项目仓库名,多个可用空格隔开(下同)

[group testwrite]
#### 可写权限组
members = zhangsan#### 组用户
writable = mytestproject#### 可写的项目仓库名

[group
 testread] #### 只读权限组
members =lisi#### 组用户
readonly= mytestproject#### 只读项目仓库名

因为这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效。

ubuntu:~/gitadmin/gitosis-admin$ git add .
ubuntu:~/gitadmin/gitosis-admin$ git commit -am “add a user permission”
ubuntu:~/gitadmin/gitosis-admin$ git push origin master

推送成功会显示下面提示信息

Ubuntu 完美安装搭建 Git 服务器

又是后新增的用户不能立即生效,这时候需要重新启动一下 sshd 服务

ubuntu:~/gitadmin/gitosis-admin$ sudo /etc/init.d/ssh restart

现在,服务端的 git 就已经安装和配置完成了,接下来就需要有权限的组成员在各自的机器上 clone 服务器上的相应

项目仓库进行相应的工作了。

五、客户端(windows)使用 git

下载安装 windows 版本的 git 客户端软件,下载地址:http://msysgit.github.io/

安装完成后右键菜单会出现几个 git 相关的菜单选项,我们主要使用其中的 git
 bash 通过命令行来进行操作。

在本地新建一个目录,使用 git 初始化这个目录,然后再里面新建一个文本文件用于测试,最后关联到 git 服务器仓库

中的相关项目,最后上传本地版本到服务器。

$ mkdir testgit
$ cd testgit
$ git init
$ echo “this is a test text file,will push to server” > hello.txt
$ git add .
$ git commit -am “init a base version,add a first file for push to server”
$ git remote add origin git@serverip:mytestproject.git
$ git push origin master

这样服务端就创建好了一个 mytestproject.git 的仓库的基础版本了,现在其他组员只要从服务端进行 clone 就可以了。

window 下面进入到需要克隆的本地目录下面右键选择 git bash 选项,输入

$ git clone git@serverip:mytestproject.git

就可以把项目 clone 到本地仓库了。

下面进行简单的修改和提交操作

$ cd mytestproject
$ echo “this is another text file created by other” >another.txt
$ git add .
$ git commit -am “add a another file by other”
$ git push origin master

最后推送到服务器成功会显示如下信息

Ubuntu 完美安装搭建 Git 服务器

GitHub 教程系列文章

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的 GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git 的详细介绍 :请点这里
Git 的下载地址 :请点这里

更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-07/120616.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4945字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中