您的位置:首页 > 其它

轻松搭建git服务器

2013-03-27 18:38 260 查看
最近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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: