我如何托管Git存储库并自行管理我的内容托管?

时间:2012-06-13 03:03:54

标签: git repository gitolite

诸如Github,Bitbucket,DropBox之类的东西 - 管理内容托管,例如门票和repo -hosting(DB不是门票,但可以用来存储回购)。我想要一个解决方案,我自己管理Git -repositories和门票等内容托管。

  

试用0:尝试调整Git,太耗时

     
    

我按照说明操作     here     但是我遇到了很多其他教程的困难     更多的困难。我克隆了"git clone --bare xxx xxx.git; cd xxx; git update-server-info"正在工作但无法推送     "--shared"的事情,厌倦了这种手动黑客攻击。     材料太多,无关材料太多,太多     过时的材料。

  

我再说一遍,我想自己做内容托管。那我怎么能主持我的git回购?

也许是相关的

  
      
  1. Git repository server I can host locally

  2.   
  3. Recommendation for code hosting of personal projects

  4.   

2 个答案:

答案 0 :(得分:5)

如果您正在运行Linux服务器,则可以选择使用Git + SSH。

在服务器上

  1. 创建一个名为git的用户帐户,该帐户对您的主git项目目录具有权限。这对于允许所有协作者推送共享项目非常有用。

  2. 将每台客户端计算机的RSA公钥添加到服务器上的authorized_keys文件中。 (您可以在大多数Linux发行版上使用ssh-keygen -t rsa -b 4096生成私钥 - 公钥对。)

  3. git用户为项目创建新的裸存储库。 git init myproject --bare

  4. 在客户端

    1. 启用IdentifyFile中的ssh_config启用私钥身份验证。

    2. 克隆裸存储库。 git clone git@<server>:/var/git/myproject

    3. 进行更改。

    4. 提交更改并将其推回远程仓库。 git push origin master

    5. 如果您需要更具体的说明(例如创建用户帐户的确切命令),请查看官方Pro Git图书。

答案 1 :(得分:3)

我会选择Gitolite(管理权限)here和Redmine(管理许多回购的工作流程)here。如果您不需要许可管理,请与迈克尔的解决方案一起使用。如果您不需要管理许多存储库,请忘记Redmine(对许多存储库很有用)。这里的内容包含与Michael的答案相同的内容,但是在第三方网站中以及在项目扩展时可能需要的一些附加内容。

<强> 0。 Git + SSH -keypair(请参阅迈克尔的回答以及下面的一些概述。)

  

如果您无法执行此操作,请不要继续 - 此方法   显示了使用bare -repos进行内容托管您的回购的基本方法。   这需要大约2分钟的时间,只需:

     
    

在服务器上

$ git init --bare test.git
         

在客户端

$ eval `ssh-agent`
$ ssh-add ~/your_auhorized_key_in_server
$ git clone something@IP:test.git
  

<强> 1。 Gitolite(管理具有不同技能的团队的权力)

  
      
  1. 优秀的分步教程here   (注意"~/.ssh/authorized_keys" -file必须只有gitolite -user)

  2.   
  3. 检查存储库-addition / removal here,是的就是这样   简单 - 您只需配置config -file然后"$ git add .; git commit -m "new repos, old dead""$ git push"

  4.   
  5. "$ ssh gitolite@xxx.yy.112.239 info"显示配置

            hello hhh, this is gitolite@ip-10-xxx-xx-203 running gitolite3 v3.03-29-g3c0f177 on git 1.7.4.5
    
             R W    helloworld
             R      gitolite-admin
             R W    testing
    
  6.   
  7. 在gitolite下克隆存储库

         

    $ git clone gitolite@176.34.112.239:helloworld

  8.   

<强> 2。 Redmine / Trac / etc(在中央GUI位置管理repos的工作流程)

  

说明   Redmine here   并确保不要在Github中克隆不稳定的开发分支。   你需要下载一些稳定的archieve。但是,我可能会去   Trac,比较here。   Redmine是一些Rails -hack和不稳定的大师 - 分支听起来不太好。

第3。 Ticgit / etc(管理没有第三方依赖的票证)

  

Bremner概述了这个问题here,但注意到这张票here,事情仍然非常糟糕。一般线程here