?
1
repogroup:*:10005:marry,john,violet
其中,repogroup是准许接入这个仓库的组的名字。10005是一个独一无二的分组识别数字,marry,john,violet则是获准接入这个仓库的用户。
决定Git仓库的路径。它既可以放在你的home路径下(e.g. /home/yourname/gitroot),也可以放在一个专用的路径下(e.g. /var/gitroot).
配置权限,让Git用户可以访问这个目录
?
1
2
chmod g+rx /path-to/gitroot
chown :grouprepo /path-to/gitroot
建立新的Git仓库,叫做newrepo
?
1
2
cd /path-to/gitroot
git init --bare newrepo.git
建立路径认证,以允许用户组访问,同时有针对性的设置Git
?
1
2
3
4
5
cd newrepo.git
chown -R :grouprepo .
git config core.sharedRepository group
find . -type d -print0 | xargs -0 chmod 2770
find . -type f -print0 | xargs -0 chmod g=u
设置提交(commit)的email通知(commit是一条命令),这样当有新的修改提交到仓库的时候,开发者们将会收到一封关于修改内容一览的电子邮件。
?
1
2
3
4
5
6
7
echo 'One-line project description' >description
git config --local hooks.mailinglist email-a@example.com<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.lengthe--)if(t[e].getAttribute("cf-hash"))return t[e]}()if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail")if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2a.length-nn+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i)e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}()/* ]]>*/</script>,email-b@example.com<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.lengthe--)if(t[e].getAttribute("cf-hash"))return t[e]}()if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail")if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2a.length-nn+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i)e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}()/* ]]>*/</script>,...
git config --local hooks.emailprefix '[DI-PR] '
git config --local hooks.showrev "git show -C %secho"
git config --local hooks.emailmaxlines 100
通过设置一个称为钩子(hook)的东东,来创建这些email通知。
首先这里我们安装openssh-server openssh-client,如果你用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。sudo apt-get -y install openssh-server openssh-client
安装git,在这个核心软件,不可或缺。
sudo apt-get -y install git
添加gitolite用户和同名用户组,加上--system参数,用户就不会在登陆界面显示。
sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
生成ssh key,一路回车下来。
ssh-keygen -t rsa
将你当前用户的ssh pub key复制到/tmp下备用,由于我用的是桌面版在同一台机器上。
cp ~/.ssh/id_rsa.pub /tmp/ubuntugege.pub
如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上
scp ~/.ssh/id_rsa.pub gitolite.server:/tmp/ubuntugege.pub
安装gitolite,在ubuntu中已经集成了,不用自己去下载。
sudo apt-get -y install gitolite
切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
sudo su - gitolite
执行初始化安装gitolite。
gl-setup /tmp/ubuntugege.pub
把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pub key错了。
安装msysgit安装步骤此处略去。END安装CopSSH安装步骤此处略去。END修改配置修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,确保如下行为非注释行,且设置为“no”:END生成用户帐号在服务器上生成Windows用户,取消用户下次登录时须更改密码,设置密码永不过期:将该用户隶属于GitUser组(如尚未生成改组,则先生成改组):欢迎分享,转载请注明来源:夏雨云
评论列表(0条)