ubuntu12.04 + git server+gitosis中央服务器的安装与配置

 gitosis主要用来管理权限。即通过公钥来管理。

安装内容,见参考资料第一个连接,参照一直做到第8步骤。

前8步骤都是完美的。

我只做补充:

补充1、git clone git@hostname:用户名/gitosis-admin.git //这句话,@前面的git,是你第4步的git服务器管理用户,hostname,可以是当前服务器ip地址,或ip地址对于的服务器名称。因为我git中央服务器是搭建在本机,所以hostname是localhost。“用户名”不用写,删掉。

补充2、第8步,修改gitosis.conf,是在本地git,不是git中央服务器。git中央服务器是与你用户根目录同层级的,且所属是git用户(即第四部的git服务器管理用户)。

所以修改完gitosis.conf后需要git add . (后面加“.”,表示添加全部),git commit -am "add 某个用户",git push (order master  可以不写)。

补充3、这段建新库的。没验证,与下面”有意思的方法“相似,但我估计要先建mkdir helloworld.git

git init git add .
git commit -am "add helloworld project"
git remote add origin ssh://git@hostname/helloworld.git //没验证,貌似还是需要先在/home/git/repositories下建mkdir helloworld.git
git push origin master

 

二、建库的两种方法:实践检验

No 1、老老实实的方法:

  ssh 进入git server服务器  -->  cd /home/git/repositories下  --> su git(切换到git管理员账户) --> mkdir ordermanage.git-->cd ordermanage.git --> git init --bare

  --> 切换回su liang -->回到本地,改gitosis-admin下的gitosis.conf,用法见参考资料第一个连接--> 拷贝公钥到keydir目录下,确保公钥文件名

  与gitosis.conf中的member名一致(去掉.pub)-->git add . ,git commit -m "add new project" ,git push(容易忘) -------->选择目录, git clone git@10.33.41.23:ordermanage.git //ip为git服务器地址

       -->往里面塞内容 --> 再add commit push --> ok!!!。

No 2、有意思的方法:

  从上面红箭头开始的地方,改变! 因为往往我们项目已经建成,需要放到git server服务器上,按上面做得先改名,复制粘贴各种麻烦。

  now ,follow me --> 前面git server上建项目过程和公钥添加都相同(新项目名Contacts.git)--------> 在本地已有项目文件夹中,git init --> git add . --> 

  git commit -am "add existed project" --> git remote add origin git@10.33.41.23:Contacts.git //添加远程关联,关键! --> git push origin master

  --> ok !!!。 //origin master必须要有

备注:

1 / 如果git remote add origin,不小心加错了,可以git remote rm origin删除后再加。

2 / 如果上面那句“加粗”的话忘了执行,会报:ERROR:gitosis.serve.main:Repository read access denied  

3 / fatal: '*****.git' does not appear to be a git repository
     fatal: The remote end hung up unexpectedly

这种报错,大多由于没有将本地gitosis-admin,提交并push到中央服务器。可以进入git中央服务器,查看中央服务器中的gitosis-admin中有没有新用户公钥。

4 / gitosis-admin是一种管理git中用户验证的库,本身也作为库的形式来管理,所以,你会在git用户主目录下的repositories下,可以看到gitosis-admin.git项目。

如果 git  clone被拒绝:

方案:检查gitosis-admin下的配置文件,sudo vim gitosis.conf --> 查看项目组名下,member名是否和keydir下的公钥文件名相同,记得要去掉.pub。

参考资料:

http://wiki.ubuntu.org.cn/index.php?title=Git%E6%9C%8D%E5%8A%A1%E5%99%A8Gitosis%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE&variant=zh-hans  //非常棒,ubuntu中文官网,我的最爱http://wiki.ubuntu.org.cn/

1、以专家为榜样,不必自己重新探索
2、解构技能,找出实现80%效果的那20%
3、不要一心二用
4、练习练习再练习!然后获得即时反馈
5、坚持,不要在低谷期放弃
原文地址:https://www.cnblogs.com/zhongyuan/p/3071203.html