zoukankan      html  css  js  c++  java
  • 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、坚持,不要在低谷期放弃
  • 相关阅读:
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    Eclipse插件安装
    SQL 四种连接查询(内连接、左连接、右连接、全连接)
    数据库分页查询
    kafka shell命令
    you can't add a second 'create_time' expression specified as 'create_time : Document{{$lte=2020-07-31 00:00:00}}'.<br>Criteria already contains 'create_time : Document{{$gte=2020-07-01 00:00:00}}'
    nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block
    Nginx配置中不同请求匹配不同请求
    FastDFS 磁盘空间不足(tracker_query_storage fail,error no : 28,error info : No space left on device)
    Oracle临时表空间不足,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段
  • 原文地址:https://www.cnblogs.com/zhongyuan/p/3071203.html
Copyright © 2011-2022 走看看