诸如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回购?
也许是相关的
答案 0 :(得分:5)
如果您正在运行Linux服务器,则可以选择使用Git + SSH。
在服务器上
创建一个名为git
的用户帐户,该帐户对您的主git项目目录具有权限。这对于允许所有协作者推送共享项目非常有用。
将每台客户端计算机的RSA公钥添加到服务器上的authorized_keys
文件中。 (您可以在大多数Linux发行版上使用ssh-keygen -t rsa -b 4096
生成私钥 - 公钥对。)
以git
用户为项目创建新的裸存储库。 git init myproject --bare
在客户端
启用IdentifyFile
中的ssh_config
启用私钥身份验证。
克隆裸存储库。 git clone git@<server>:/var/git/myproject
进行更改。
提交更改并将其推回远程仓库。 git push origin master
如果您需要更具体的说明(例如创建用户帐户的确切命令),请查看官方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(管理具有不同技能的团队的权力)
优秀的分步教程here (注意
"~/.ssh/authorized_keys"
-file必须只有gitolite -user)检查存储库-addition / removal here,是的就是这样 简单 - 您只需配置config -file然后
"$ git add .; git commit -m "new repos, old dead"
和"$ git push"
"$ 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
- 醇>
在gitolite下克隆存储库
$ git clone gitolite@176.34.112.239:helloworld
<强> 2。 Redmine / Trac / etc(在中央GUI位置管理repos的工作流程)
说明 Redmine here 并确保不要在Github中克隆不稳定的开发分支。 你需要下载一些稳定的archieve。但是,我可能会去 Trac,比较here。 Redmine是一些Rails -hack和不稳定的大师 - 分支听起来不太好。
第3。 Ticgit / etc(管理没有第三方依赖的票证)