专栏首页肖金阳的专栏【腾讯云的1001种玩法】Ubuntu Server搭建 Git 服务器实测版
原创

【腾讯云的1001种玩法】Ubuntu Server搭建 Git 服务器实测版

周末花费时间在云服务器Ubuntu Server 14.04.1系统上搭建了一个 git 服务器。搭建过程中还是遇到了一些小问题,在这里记录下来。

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

在终端输入以下命令:

ubuntu@VM-215-209-ubuntu: sudo apt-get install git-core openssh-server openssh-client

git-core是git版本控制的核心软件。

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

中间有个确认操作。如果安装提示失败,可能因为系统软件库索引文件太旧。更新一下,命令如下:

ubuntu@VM-215-209-ubuntu: sudo apt-get update

更新后重新执行安装命令即可。

安装Python的setuptools和gitosis ,由于gitosis安装需要依赖Python的一些工具,下面安装Python的setuptools.命令如下:

ubuntu@VM-215-209-ubuntu: sudo apt-get install python-setuptools

接下来准备安装gitosis,安装gitosis之前需要初始化一下服务器git用户信息。随便填

ubuntu@VM-215-209-ubuntu: git congif --global user.name "name"
ubuntu@VM-215-209-ubuntu: git congif --global user.email "***@qq.com"

下面安装gitosis,gitosis主要用于给用户授权。通过一些命令获取gitosis版本文件:

ubuntu@VM-215-209-ubuntu: git clone https://github.com/res0nat0r/gitosis.git

注意:中间有两个是数字零。

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

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

安装完成,下面开始对git进行一些基本配置。

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

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

ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo useradd -m git
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo passwd git

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

ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo mkdir /home/gitrepository
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo chown git:git /home/gitrepository/
ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo chmod 700 /home/gitrepository/

由于gitosis默认状态下将仓库放在用户的repositories目录下,添加一个链接,指向连接仓库的项目/home/gitrepository

ubuntu@VM-215-209-ubuntu:/home/git$ sudo ln -s /home/gitrepository /home/git/repositories

这里我使用在windows客户机中生成的ssh公钥:使用

ubuntu@VM-215-209-ubuntu:/home/git$ sudo -H -u git gitosis-init < /tmp/xjy.pub

上面是已存在的提示,因为我已经初始化过了

实际应该是:

Initialized empty Git repository in /home/gitrepository/gitosis-admin.git/
Reinitialized existing Git repository in /home/gitrepository/gitosis-admin.git/

post-update文件添加可执行权限。

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

三、服务器上创建项目仓库与权限配置

使用git账户在服务器上创建一个目录:

ubuntu@VM-215-209-ubuntu:/home/git$ su git
$ cd /home/gitrepository
$ mkdir mytask.git
$ cd mytask.git
$ git init --bare
$ exit

对gitosis进行配置,以便克隆项目:

先在客户端机器上克隆下gitosis-admin.git:打开git bash:

$ git clone git@115.159.157.67:/gitosis-admin.git
Cloning into 'gitosis-admin'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 1), reused 5 (delta 1)
Receiving objects: 100% (8/8), 1.09 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.

只有第一条是命令哈,下面是执行结果

克隆下来有一个gitosis.conf用于配置权限。

keydir用于存放ssh公钥文件,(一般以“用户名.pub命名”。gitosis.conf中使用相同的用户名。)

(注意:在windows中生成的.pub文件最后会有一个用户名。使用该名称比较好)

将.pub文件复制到keydir目录下 。修改gitosis.conf文件

vim gitosis.conf

members 为用户名 与.pub文件对应 多个用户以空格隔开

writable 可写项目组 ,以空格隔开

readonly 只读项目组,以空格隔开

提交修改到服务器:

git add .
git commit -m "add new"
git push origin master

新增用户不能生效:重启sshd服务

ubuntu@VM-215-209-ubuntu: /tmp/gitosis$ sudo /etc/init.d/ssh restart

配置完成可以进行克隆:

提示mytask文件夹为空,但是已经克隆下来了~~ :

end

有问题欢迎补充...... by xjy .

相关推荐

【腾讯云的1001种玩法】微信个人订阅号后台server搭建入门教程

【腾讯云的1001种玩法】Ubuntu 14.04 Spark单机环境搭建与初步学习

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Super快报第37期:支持正版从我做起

    1、高晓松称网络音乐7月1日后开始收费 高晓松今天下午在出席第13届音乐风云榜年度盛典启动发布会时透露,7月1日后,中国音乐产业将进入全面正版化的时代。他指出...

    罗超频道
  • OJ刷题记录:好朋友

    题目描述: 有一个叫做“数码世界”奇异空间,在数码世界里生活着许许多多的数码宝贝,其中有些数码宝贝之间可能是好朋友,并且数码宝贝世界有两条不成文的规定:

    英雄爱吃土豆片
  • 直播预告丨一站式云游戏PaaS解决方案

    云加社区直播小编
  • logstash插件推荐

    1、kafka 参考:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kaf...

    苦咖啡
  • ELK相关学习网站

    elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/rp...

    菲宇
  • Krisp通过机器学习减少通话时的噪音,即将推出Windows版本

    2Hz的Krisp是一款全新的桌面应用程序,它使用机器学习来减少背景噪音,如人群声音,甚至孩子哭泣的声音,同时保持你的声音完好无损。它现在已经支持Mac,很快就...

    AiTechYun
  • Android 开发之Dialog中隐藏键盘的正确使用方法

    场景:弹出一个Dialog,里面有一个EditText,用来输入内容,因为输入时,需要弹出键盘,所以当Dialog消失时,键盘要一起隐藏。

    砸漏
  • 【第012期】如何设置页面锚点

    不知道大家有没有注意到,在我们上网的时候,会看到有些链接打开之后可以直接定位到页面的某个位置处。

    姬小光
  • F-Stack 1.20 Roadmap

        F-Stack 1.20 将于 2019Q3 发布, 同步 Roadmap。 已支持: 支持在 docker 中运行 支持客户端 bind/conn...

    F-Stack
  • C++STL模板库序列容器之vector

    STL 是标准模板库的意思. 就是数据结构,封装成类让我们使用. 使用的时候我们要了解数据结构才可以使用这些类.因为数据结构不知道是什么结构你用类的话也用不明白...

    IBinary

扫码关注云+社区

领取腾讯云代金券