我们应该感谢相遇,无论结局是喜是悲....
CentOS上搭建Git服务器步骤详解
  • 首页 > 教程小结
  • 作者:起点终站
  • 2016年5月10日 17:26 星期二
  • 浏览:5623
  • 字号:
  • 评论:2
  • CentOS上搭建Git是大家非常常用的一个分布式版本控制软件了,比起svn像是要强大了许多了,下面一聚教程小编就为各位介绍一下在CentOS上搭建Git服务器步骤吧。

    Git是一个分布式版本控制软件,原来是linux内核开发者Linus Torvalds为了更好地管理linux内核开发而创立的。发展至今,Git已经成为了一个相当好用的版本管理工具。相比于SVN,如果想要保存一些微小的修改也必须得提交服务器保存才可以,这样使服务器的版本号过多,而Git解决了这个问题,一些小的修改只在本地提交即可,只需最后修改完成后再提交服务器。正是由于这样的便捷性,现在越来越多的社区项目都开始使用Git来取代SVN之类较为传统的版本管理工具进行开发。 。

    使用CentOS搭建Git服务器是一件比较轻松的事儿,本次折腾主要涉及git, gitosis, gitweb的安装配置。其中,gitosis和gitweb是两种比较常用的方式,gitosis是以SSH方式访问和管理git, gitweb是通过http的方式访问和管理。利用这些工具即可满足Git服务器的基本功能。此外比较好的一点是,Git的管理工具几乎不会给服务器带来较大的性能压力。下面正式开始我们的Git安装配置记录。

    一、安装Git

    yum install git
    然后进行配置:

    useradd --home /home/git git
    passwd git

    git config --global user.name "zwh"
    git config --global user.email "admin@hellozwh.com"
    设置默认将会保存在~/.gitconfig文件中。

    此时,Git的功能就已经可以使用了。


    二、安装gitosis

    在安装之前,可以看一下gitosis的实现原理:

    http://geeklu.com/2012/10/gitosis/

    先切换回root权限。


    su root
    并先安装python-setuptool


    yum install python-setuptools
    然后开始安装gitosis,值得注意的是gitosis的安装程序本身就是由git管理的,需要使用git来获取。这里在/tmp目录下进行相关的安装操作:


    cd /tmp
    git clone https://github.com/res0nat0r/gitosis.git
    接下来进入下载的gitosis版本库进行安装:


    cd gitosis
    python setup.py install
    安装完成后,便进入对gitosis的设置阶段。由于gitosis需要通过SSH进行管理,所以需要创建SSH密钥对,并将公钥放在服务器端,私钥放在客户端。一般的流程是客户端创建完密钥后,将公钥传到服务器上生效。不过,偷懒的话直接在服务器上操作问题也不大。

    切换到git用户并建立文件夹.ssh:


    su git
    mkdir /home/git/.ssh
    一定记得,在客户机上生成公钥,上传到服务器,或者在服务器上生成,下载到客户机。

    进入~/.ssh目录并使用ssh-keygen生成公钥:


    cd /home/git/.ssh
    ssh-keygen -t rsa
    注意不能忘记私钥的密码。默认会生成~/.ssh/id_rsa.pub公钥文件。

    有了密钥以后便可初始化gitosis,使gitosis获得对Git的管理权限:


    gitosis-init < /home/git/.ssh/id_rsa.pub
    初始化之后,会在/home/git/repositories创建gitosis-admin.git项目,可以通过维护这个项目来对gitosis进行配置。

    除此以外,还需要对gitosis-admin.git/hooks/post-update目录赋上特殊权限:


    chmod u+x /home/git/repositories/gitosis-admin.git/hooks/post-update
    至此,服务器端的gitosys配置就完成了。

    返回root用户,并创建项目库

    su root

    mkdir /home/git/repositories/zwh.git


    切换到项目目录,并进行初始化

    cd /home/git/repositories/zwh.git

    git init --bare


    至此,一个初始的空项目版本库就配置完成了,可以向库中推送我们的代码库内容了。

    git clone git@serverip:repositories/zwh.git


    可以了。。


    git在push的时候出现insufficient permission for adding an object错误
    Counting objects: 9, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (5/5), done.
    Writing objects: 100% (5/5), 506 bytes, done.
    Total 5 (delta 2), reused 0 (delta 0)
    error: insufficient permission for adding an object to repository database ./objects
    fatal: failed to write object
    error: unpack failed: unpack-objects abnormal exit 
    发生push错误时,查看zwh.git所属是不是git用户。
    sudo chown -R git:git zwh.git


    在mac下git clone显示网络错误的时候,可以尝试删除/user/.ssh/known_hosts
      您阅读这篇文章共花了:  
    本文作者:起点终站      文章标题: CentOS上搭建Git服务器步骤详解
    本文地址:https://blog.hellozwh.com/?post=3
    版权声明:若无注明,本文皆为“起点终站”原创,转载请保留文章出处。
    淘宝客交流2016-07-10 21:44
    你的博客太漂亮啦,很喜欢  可以交换连接吗?
    起点终站 没错,我就是那个帅逼站长2016-07-10 22:20
    可以啊。已经添加贵方友链了。。常来逛逛
    返回顶部| 首页| 手气不错| 网站地图| sitemap| 装逼生成器| 站长介绍|

    Copyright © 2014-2017 起点终站   闽ICP备16011094号-1

    00:00 / 00:00
    顺序播放