加载中…
正文 字体大小:

在CentOS 6.0 上安装git,gitosis, gitweb (1)

(2011-10-28 10:50:16)
分类: 技术文章
    git是管理大型项目的非常好用的版本管理工具。和cvs,svn相比有可以在本地提交管理的优势。对于svn,如果想要保存一些微小的修改也必须得提交服务器保存才可以,这样使服务器的版本号过多,而git解决了这个问题,一些小的修改只在本地提交即可,只有最后修改完成后再提交服务器。
    这篇文章介绍如何在CentOS 6.0上安装git,gitosis,gitweb。管理git有很多方式,gitosis和gitweb是两种比较常用的方式,gitosis是以SSH方式访问和管理git, gitweb是通过https的方式访问和管理git。
    列出以下安装计划:
    1. 安装git
    2. 安装gitosis
    3. 安装gitweb

一、安装git
    安装git非常简单,在CentOS下只要以下命令即可
    
    # yum install git
    (用 yum install git-core也许也可以,没有验证)

    下面介绍如何使用git
    
    我们计划将所有项目建立在git用户的/home/git/repo下
    
    如果没有git用户则建立
    # useradd --home /home/git git
    # passwd git
    
    新建repo目录(假设用git用户建立)
    # su git -
    $ mkdir /home/git/repo
    $ chmod -R 755 /home/git

    使用git之前必须要设置2个全局变量
    # git config --global user.name "Frank" 
    # git config --global user.email "frank@myemail.com"
    这个将设置在你的home目录下,默认是在~/.gitconfig里

    这时候可以开始使用git了,首先在服务器上建立一个项目(或者叫库:repository),我们使用git用户建立。记住,现在还是在服务器端操作。我们的项目名叫做firstproj。
    $ mkdir firstproj
    $ cd firstproj
    $ git init --bare (该命令初始化库)
    到目前为止,项目已经建立,下面的步骤由客户端开始使用该项目。

    我们切换到一个客户端用户 frank,到frank的local路径/home/frank/(目前仍然在服务器上,只不过换一个用户作客户端操作验证)
    $ su frank -
    $ cd /home/frank
    $ mkdir mygittest
    $ cd mygittest
    git clone /home/git/repo/firstproj
    Initialized empty Git repository in /home/git/repo/firstproj/.git/
    以上,frank用户在本地获得了一个项目的copy
    $ cd firstproj
    vim a.txt (创建一个文件)
    git add . (注意后面有一个[.])
    git commit -a
    [master (root-commit) 0470140] a
      1 files changed, 1 insertions(+), 0 deletions(-)
      create mode 100644 a.txt
    $ git push 
    No refs in common and none specified; doing nothing.
    Perhaps you should specify a branch such as 'master'.
    fatal: The remote end hung up unexpectedly
    此时会出错,因为没有指定分支。
    $ git push origin master(改为这样,指定提交到master分支)
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 193 bytes, done.
    Total 3 (delta 0), 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
    To /home/git/repo/firstproj
     ! [remote rejected] master -> master (n/a (unpacker error))
    error: failed to push some refs to '/home/git/repo/firstproj'
   
    还是出错,因为frank用户没有权限添加到数据库,需要设置权限
   chmod -R 777 refs/
    chmod -R 777 objects/
    $ git push origin master 
     Counting objects: 3, done.
     Writing objects: 100% (3/3), 193 bytes, done.
     Total 3 (delta 0), reused 0 (delta 0)
     Unpacking objects: 100% (3/3), done.
     To /home/git/repo/firstproj
     * [new branch]      master -> master

    提交成功
    至此基本的git操作都可以实现了。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有