1. git的安装和配置

(1)使用yum源安装git
  1. yum install git

(2)创建git用户并设置密码

  1. #useradd --home /home/git git
  2. #passwd git
  3. //注意这里要设置一个密码,建议不要不设密码,网上很多资料都不设密码

(3)创建一个git仓库,验证git是否可用

  • 在使用git之前,要设置git的两个全局变量,设置方式为:
    1. # git config --global user.name "dylan"
    2. # git config --global user.email "ustc.dylan@email.com"
  • 设置git仓库目录的权限
    1. # su - git                           //切换到git用户
    2. $ chmod -R 755 /home/git             //修改目录的权限
  • 创建并初始化一个repository
    1. $ mkdir /home/git/repo   //假设要创建的repository放在/home/git/repo目录下
    2. $ cd /home/git/repo
    3. $ mkdir test_repo
    4. $ cd test_repo
    5. $ git init --bare
  • 测试新创建的repository是否可用
    1. su - test (test为另外一个user或者exit,使用root用户)
    2. $ cd /home/test
    3. $ mkdir repos
    4. $ cd repos
    5. $ git clone /home/git/repo/test_repo

    如果显示" Initialized empty Git repository in /home/git/repo/test_repo/.git/",则说明成功的clone了一个local repository。之后就可以在此repository下进行开发了,比如,添加一个readme.txt文件。

    1. $ cd test_repo
    2. $ vim readme.txt (创建一个文件)
    3. $ git add . (注意后面有一个[.])
    4. $ git commit -a
    5. $ git push origin master
     注意:如果此时报错,最大的原因是test_repo的refs和objects目录的权限不够,执行如下操作即可(git server端的repository下的这两个目录)。

  1. $ chmod -R 777 refs/
  2. $ chmod -R 777 objects/
 

2. gitosis的安装

 (1)python-setuptools的安装(因为gitosis的安装脚本是用python写的)
  1. #yum install python-setuptools

(2)gitosis的安装

  1. #git clone git://github.com/res0nat0r/gitosis.git//下载gitosis到你想存放的目录下
  2. #cd gitosis
  3. #python setup.py install    //如果没有报错,则说明安装成功

(3)创建是用这个git server的用户的公钥

   因为gitosis的访问是通过ssh访问的,所以我们还需要创建一个ssh的访问公钥。找另外一台机器(如果条件允许)作为git server的客户端机器创建公钥,然后传到git服务器上。(如果为了简便,也可在git服务器上创建公钥,使用git用户或者其他用户都行。为了方便,这里采用git服务器,并且使用git用户。

  1. # su - git
  2. $ ssh-keygen -t rsa

公钥生成了,默认放在/home/git/.ssh/id_rsa.pub下,如果生成公钥时设置了密码,注意记住密码,为了简单,我这里没有设置密码。

 
(4)配置gitosis
    gitosis对git的各种管理通过gitosis-admin.git这个项目来完成,gitosis-admin.git项目本身又被置于git下管理,所以需要先在client端clone gitosis-admin.git, 根据需求修改后,将修改提交到git server即可生效。
    此处的含义就是:你想在哪对gitosis进行配置,就需要在哪clone到gitosis-admin.git.
  • 假设在于gitosis不同的另外一台机器上,使用git用户将gitosis-admin.git clone到本地。
    1. git clone git@192.168.x.xx:/home/git/repositories/gitosis-admin.git
  • 修改gitosis配置文件gitosis.conf
    1. $ vim gitosis.conf
    2. //会看到如下内容
    3. [gitosis]
    4. [group gitosis-admin]
    5. writable = gitosis-admin
    6. members = git@compute-29-01.local

    gitosis.conf 文件是用来设置用户、仓库和权限的控制文件(对于gitosis.conf文件的详细含义,以及keydir目录下公钥的作用,将会另写文档说明,在此不再详述),只需知道gitosis仓库是可写的,支持的用户有git

(5)新添加repository
     修改gitosis-admin的配置文件gitosis.conf,新添加一个repository,例如:

  1. [gitosis]
  2. [group gitosis-admin]
  3. writable = gitosis-admin
  4. members = git@compute-29-01.local
  5. [group test_repo]                        //新添加的仓库名称
  6. writable = test_repo                     //此仓库的读写权限,此处为可写
  7. members  = user1@host1 user2@host2       //可以访问此仓库的用户名@主机名

假设当user1,来访问这个test_repo仓库时,需要输入如下命令:

  1. git clone user1@git_server_ip:/home/git/repo/test_repo.git

此时会要求输入user1的密码,此密码就是创建user1的公钥时输入的密码。那么gitosis又是怎么来确定user1的身份的呢? 这就要求必须事先将user1产生的公钥传给管理员,即对gitosis-admin有权限操作的管理人员,然后由他将公钥拷贝到keydir目录下,然后,执行git add,git push即可。

3. gitweb安装

    注意:redhat的iso源是没有gitweb安装包,但是centos的源中有,在上一篇文章中给出了如何让redhat使用centos的源,那么,只需采用如下命令即可安装。
  1. # yum install gitweb

4. gitweb配置

  gitweb默认安装到了/var/www/git下,其配置文件在/etc/gitweb.conf下,另外,httpd的配置文件/etc/httpd/conf.d/git.conf。
(1)修改/etc/gitweb.conf

  1. $projectroot = "/var/www/git" //将projectroot修改为/var/www/git

(2)修改/etc/httpd/conf.d/git.conf

  1. Alias /git /var/www/git
  2. <Directory /var/www/git>
  3. Allow from all
  4. AllowOverride all
  5. Order allow,deny
  6. Options +ExecCGI
  7. AddHandler cgi-script .cgi
  8. DirectoryIndex gitweb.cgi
  9. SetEnv GITWEB_CONFIG /etc/gitweb.conf
  10. Dav On
  11. RewriteEngine Off
  12. </Directory>
 

(3)重启httpd

  1. /etc/init.d/httpd restart

(4)将gitosis仓库连接到/var/www/git下,完成web显示

  1. ln -s /home/git/repositories/test_repo.git /var/www/git/
(5)通过浏览器浏览
http://xxxx/git/
 
注意:  如果git clone  http://xxx/git/test_repo.git时出现git update-server-info错误,则在test_repos.git目录下执行 git update-server-info 命令即可(gitosis服务器的相应仓库下)。
 
5. 创建新的git repository
在git server的/home/git/repository目录下,执行如下命令:

  1. mkdir test.git
  2. cd test.git
  3. git init --bare
  4. //可以在这里添加源文件,也可以在client端clone之后添加

centos 6.3 搭建git/gitosis/gitweb的更多相关文章

  1. CentOS 6.4 搭建git 服务器

    CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档ht ...

  2. Centos 6.4搭建git服务器【转】

    前阵子公司需要,让我搭个Git服务器,把之前用的SVN上代码迁移到git上去,所以就在阿里云主机上搭了一个,记录了下安装过程,留存文档以备查阅.本篇本章只涉及搭建部分的操作,更多git的使用可以参考文 ...

  3. CentOS 6.8 搭建 Git 代码托管系统 Gitea

    [荐] Gitea:Git with a cup of tea,在 Gogs 基础上,发展起来的 自助 Git 服务系统.Gogs是一个个人维护的版本,而Gitea是一个社区组织维护的,版本迭代更新快 ...

  4. [CentOS] 使用gitolite搭建git服务端

    1. 创建用户 #创建gitadmin用户 useradd gitadmin #设置gitadmin密码 passwd gitadmin #创建git用户 useradd git #设置git密码 p ...

  5. 在CentOS 7中搭建Git服务器

    环境说明 - CentOS 7.x 最小安装 - 配置网络连接 1. 安装Git及创建用户 # 安装Git $ yum install git # 创建一个git用户组和用户,用来运行git服务 $ ...

  6. 自定义Git之使用centos搭建git 服务器

    Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费. 这时我们就需要自己搭建一台Git服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1 ...

  7. CENTOS下搭建git代码仓库 ssh协议

    centos服务器下搭建git仓库,使用ssh协议管理仓库代码权限    git官网(http://git-scm.com/) 使用ssh协议: 一.安装git,使用yum install git 或 ...

  8. debian下使用gitosis+gitweb搭建SSH认证的git服务器

    搭建完成Git服务器后,需要使用两台机器进行测试,一台机器作为服务器端server,一台服务器作为客户端client.整个系统,需要三个计算机账户,这里假设server端的账户名为git,client ...

  9. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

随机推荐

  1. iOS优秀博客收录(持续更新)

    唐巧 王巍 破船之家 NSHipster Limboy 无网不剩 念茜的博客 Xcode Dev Ted’s Homepage txx’s blog KEVIN BLOG 阿毛的蛋疼地 亚庆的 Blo ...

  2. 应用删除后 Launchpad 上仍有应用图标无法删除的解决方法

    应用删除后 Launchpad 上仍有应用图标上带有问号且无法删除时,可以将 launchpad 重置. 在终端输入: defaults write com.apple.dock ResetLaunc ...

  3. SharePoint咨询师之路:设计之前的那些事三:体系结构

    提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识.有些内容是自己的经验和积累,如果有不当之处,请指正. 咨询师更多的时候是解决方案提 ...

  4. resharper 7.x 注册码key

    user:dobit sn:G/YgFyekI7EL0oBc5YBWKI5WCi3pwXWP

  5. xml velocity模板

    . <?xml version="1.0" encoding="GBK"?> <PACKET type="REQUEST" ...

  6. POJ 2378 Tree Cutting (DFS)

    题目链接:http://poj.org/problem?id=2378 一棵树,去掉一个点剩下的每棵子树节点数不超过n/2.问有哪些这样的点,并按照顺序输出. dfs回溯即可. //#pragma c ...

  7. ssh 框架整合试例 (spring+struts2+hibernate)

    1.首先用Eclipse创建一个web项目(Eclipse EE 版) new->Other-> 输入web 然后选择Dynamic Web Project->next-> 输 ...

  8. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路

    阿里聚安全攻防挑战赛第三题Android PwnMe解题思路 大家在聚安全挑战赛正式赛第三题中,遇到android app 远程控制的题目.我们今天带你一探究竟,如何攻破这道题目. 一.题目 购物应用 ...

  9. erlang web socket参考。

    出自: http://blog.sina.com.cn/s/blog_96b8a15401010g71.html

  10. jQuery(一)delegate() 方法

    定义和用法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适用于当前或未来 ...