轻松搭建git服务器

最近svn频繁出怪问题, 也可能是我vps不行吧(512MB内存, 出问题时的负载不足1, 内存120空闲...), 实在忍不住, 干脆换git了, 下面把摸索出来的东西记录下, 只简单说下而已..

个人怎么使用我就不说了, 如果你刚接触git也可以参考文章末尾我提供的参考文档; 这里只说下git服务器的搭建, 下面的内容都建立在我认为你已经大致会使用git init, git add, git commit等简单命令的基础上.

另外关于认证方式, 我们选择单用户, 多证书的方式, github就是如此, 因为是ssh访问, 不可能每个人在服务器上有一个用户, 关于几种认证方式请参考文章末尾我提供的参考文档, 那下面我们开始吧.

架设git服务器的之前, 我们需要一个已经存在的git仓库, 并克隆成一个纯仓库, 就是不包含工作目录内容的仓库, 方法如下:
git clone --bare demo demo.git //我假设你已经有了demo这个仓库

然后将这个纯仓库(demo.git)上传到服务器, 假如我们所有的git仓库都放置在/data/git下(需要给git用户权限, 用户自建), 并且服务器上也已经安装好git, 也能直接通过终端访问git命令
scp demo.git git@you.server.com:/data/git //回车, 输入密码

实际上我们已经安装成功了. 那么团队协作的人怎么使用呢?
在之前我们说了, 使用单用户(git)多证书的访问方式, 那么就需要首先生成证书, 并且公匙写入到服务器
ssh-keygen -t rsa -C "your@email.com" //直接回车几次完成 scp ~/.ssh/id_rsa.pub git@your.server.com:~/.ssh/ ssh git@your.server.com cd ~/.ssh cat id_rsa.pub >> authorized_keys //是">>"哦, 追加;

以后如果团队增加成员, 只需要把他生成的公匙追加到authorized_keys即可.
ADD: 2011-10-19 另外上面的scp以及之后的代码是在第一次部署的才这样, 后期应该禁止git密码登录, 再需要写入公匙就需要ROOT来操作了

假设我的公匙已经写入到用户git跟目录下.ssh/authorized_keys里了, 那么我不需要密码就可以访问git仓库了, 现在来看看我们怎么协调工作吧
git config --global user.name "fengqi" git config --global user.email "lyf362345@163.com" cd /e/www/ git clone git@your.server.com:/data/git/demo.git

等待clone完成, 就跟我们单人使用git差不多了, 其它人也是, 首先写入自己生成的公匙(当然这个以后应该就只能项目管理人员可以操作了), 然后从服务器上clone下来即可.

进阶使用请详读相关资料, 期待你发现GIT的美:
http://dl.windphp.com/Version/progit.zh.pdf
http://progit.org/book/zh/

标签: git

仅有一条评论

  1. 命令全手工输入, 因为某种原因, 没地方复制, 如果有错还望之处

添加新评论