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

Ubuntu完美安装搭建Git服务器

487次阅读
没有评论

共计 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、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984777
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...