分享

Git 服务器搭建及相关实践 | He Peng's Blog

 筑心wup 2012-12-31

Git 服务器搭建及相关实践

项目中对htdocs进行的分支开发,结果被svn搞悲剧了.checkout就需要20分钟,和主干合并的时候又需要20分钟,对于静态目录,htdocs的变化几乎是按照分钟来计算.每次和主干合并一次都是20多分钟,项目就不用开发了.遥想自己的小项目使用github的时候切换分支都是瞬时的.决定在这次项目中让git和svn并存.一步一步来达成这个目的.

  • 搭建git服务器
  • windows进行git的配置
  • tortoise git实践

首先就是搭建git服务器,没有使用github的主要原因就是github时常被墙,唉,国内的互联网环境实在太差了.服务器找了一台ubuntu server.第一步就是安装git

sudo apt-get install git-core

安装python setuptools

sudo apt-get install python-setuptools

安装gitosis,gitosis用于git权限的管理.

mkdir ~/src
cd ~/src
git clone git://eagain.net/gitosis
cd gitosis
sudo python setup.py install

增加一个git用户

sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git

到现在服务器端基本就搞好了.由于基本都是windows开发,就说一下windows客户端的设置.首先下载安装msysgit,下载地址:http://code.google.com/p/msysgit/,接着下载安装tortoise git,下载地址:http://code.google.com/p/tortoisegit/
不要用tortoise git自带的那个putty key gen功能,生成的key是不对的运行git bash在本地生成rsa key,.命令如下

ssh-keygen -t rsa

基本上回车就好了.key的位置在C:\Users\hepeng\.ssh
需要把后缀为pub的文件上传到服务器.然后需要在服务器执行下面命令,把这个用户设置成git管理员.

sudo -H -u git gitosis-init < /home/USER/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

下面就可以本地测试了

git clone git@YOUR_SERVER:gitosis-admin.git

成功后,在本地将有一个gitosis-admin目录,里面有gitosis.conf,keydir。
打开gitosis.conf,增加一块内容,members为某个用户的公钥~/.ssh/id_rsa.pub中的名字

添加一个新项目仓库

[group htdocs]
members = wolmhp@gmail.com
writable = htdocs

然后提交的服务器

git commit -a -m "created a new repository"
git push

下面就可以clone这个htdocs啦.

在使用tortoise git操作的时候总会遇到弹出密码输入框的问题,只要把tortoise git的ssh client设置成git就可以了.

在htdocs创建 .gitignore 文件,用于忽略某些不需要进行代码管理的内容

接下来,增加成员的公钥到系统中,gitosis-admin\keydir文件夹下面,把公钥重命名成 用户名.pub 用户名就在公钥文件的最后.
修改gitosis.conf,members 后面增加公钥中的用户名,
commit并push,这个用户的权限就设置好了.

最后一个问题,在第一次clone的时候,一定要在git bash中输入 

git config --global core.autocrlf false

msysgit 默认是true 但是linux 默认是false,因为svn没有autocrlf这个功能,可能会导致git clone出的代码和svn管理的代码出现大量差异.

我们再使用git对静态文件进行分支管理的测试,切换分支,瞬时;合并分支,瞬时,太爽了.问题都解决了.
不过遗憾的是gitosis不能对单独一个分支进行权限管理,比较遗憾.主干想收回写的权限,好像还比较难办.

Notice: This work is licensed under a BY-NC-SA. Permalink: Git 服务器搭建及相关实践

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多