码迷,mamicode.com
首页 > 其他好文 > 详细

Git搭建团队项目环境

时间:2015-05-26 18:30:18      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

序言

使用git有一段时间但是没有自己搭过项目。当我在网络查找问题时,搜到的同类文章大同小异,表述也不是很详细。

被push失败问题折腾了6个小时,于是完整决定记录一下,不尽完善,公自己和新手参考。 

系统Mac OS X  Yosimite 10.10
-----------------------------------------------------------------------------------------------------

一、项目中心仓库部分
中心仓库需要设为裸仓库。 使用—bare选项,将当前仓库创建为一个裸仓库,只记录历史信息和配置。

 $ git init —bare project.git  
此时这个裸仓库只是个空仓库,并且不能直接git命令操作添加项目文件,成员clone下来也是空的。是的,成员可以添加文件push进来。

更多的情况下,我们新建项目本身就是 git clone下来的,我们可以进入这个git的上级目录,执行如下命令来新建一个裸仓库作为中心仓库,执行完这个项目就可以用作origin了。
 $ git clone --bare example-project project.git/.git 

以上步骤还可以这样变成裸仓库,删除项目下除了.git目录的所有文件, 并执行
 $ git config --bool core.bare true 


通过http协议搭建的仓库属于公有仓库,其他方式的属于私有仓库。 接下来配置支持这些协议的地址:

@(可选共享方式ssh)配置使此中心仓库支持远程访问,操作位于中心仓库server
首先确定账号。
有时候,我们的中心仓库并不是一个专门的git服务器——这就意味着我们可能需要两个账号,一个是成员登录系统开发用的账号,另一个是专门的后台账号git2(需要自己建,使它只能执行git-shell不能登录,我们并不需要手动使用这个,当成员push时系统会使用这个去修改仓库下的.git下的文件)

 $ chown -R git2 .git 

我们使用的git协议即是依赖ssh。让中心仓库认证开发成员:
将在成员电脑ssh-keygen生成的公钥添加到中心服务器(remote/origin)的git后台账号home目录下.ssh/authorized_keys文件中( 如本文中mac下git专用账号 /Users/git2/.ssh/authorized_keys, 其他系统路径略同)
至于数十人的团队,使用Gitosis来管理key比较方便。 Gitosis 和 Gitlab网页管理项目本文不作介绍。

@(可选共享方式http) 不能push
建立并配置http server, 发布项目到web目录即可。

发布前更新一下,让web客户端可以获得他们所需的额外信息
 $ cd project.git 
 $ git --bare update-server-info 
 $ chmod a+x hooks/post-update 

git支持多种协议的remote项目地址,其他成员初始下载项目
$ git clone user@server:/path/project.git localName 
$ git clone ssh://user@server:/path/project.git localName 
$ git clone https://serverhost/path/project.git localName 
本机可使用
$ git clone /path/project.git 
$ git clone file:///path/project.git 

此时不出意外成员应该可以clone、pull、merge等操作了。


二、项目成员部分:
clone下来之后可能自带了remote项目地址,也可以手动添加。
$ git remote add origin /path/to/project.git 
$ git remote remove origin  
$ git remote rename oldname newname 
$ git branch -m -r origin/dev-1 origin/dev-alpha       //更改远程分支名称

本地分支:
本地master分支在commit时会自动创建,手动创建这个master会提示 invalid name。 创建其他分支:
$ git checkout -b master2 

使不验证证书
$ env GIT_SSL_NO_VERIFY=true

$ git push origin master

@ 常见错误
1. 权限错误
remote: error: insufficient permission for adding an object to repository database objects 
remote: fatal: failed to write object 
解决这个错误,一般与权限有关,确保成员项目下origin地址中的账号在中心仓库有修改 project.git/.git 的权限。

 

Git搭建团队项目环境

标签:

原文地址:http://www.cnblogs.com/antarctican/p/4531086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!