在Windows Server 2012 R2/IIS上运行Git服务器

4
  • 编辑回答 -

问:我们希望在工作中运行一个三层编程git结构。程序员可以在本地计算机上使用Git,在“生产”虚拟机上运行的远程存储库进行克隆,推送和获取,然后将最终代码推送到“部署”机器上供使用。

我们正在使用Windows Server 2012 R2,并且我在如何做到这一点方面获得了很少的信息。我在“部署”机器上安装了最新的Bonobo git服务器,并一直在测试从命令行在“生产”机器上克隆,但什么都没发生。它看不到远程VM上的存储库。

有人了解在IIS网络上使用多台机器与Git吗? Bonobo是否适用于此目的?还是它只是用于本地主机的Web接口?

答:在Will指导我使用浏览器进行测试后,我想起来看URL时已经将IP地址绑定到wwwroot目录中的子目录中,这就是为什么它找不到.git文件的原因。我取消了IP地址与子目录之间的绑定,并重新将IP地址绑定到IIS中的“默认网站”。这样做后,它就能找到Bonobo.Git.Server子目录,我就能够在“部署”机器上从“生产”机器克隆仓库了。谢谢,Will!


你是指连续集成解决方案吗?GIT用于源代码控制。不涉及测试/打包/部署。 - Oxymoron
我并不完全确定。在Windows IIS上自托管git服务器并使其可通过IP由我们网络中的不同机器访问作为远程存储库,这将是一个简单的解决方案。这可能是一个持续集成的解决方案,但对我来说,它似乎只是一个常识性的东西。看起来这就是bonobo创建的目的,但是按照安装说明进行操作并没有达到预期效果。 - user4333011
1个回答

3
我认为Bonobo能够帮助您完成这一任务,它使用IIS和Git实现以下两个功能:
  1. 通过与IIS服务器进行HTTP/HTTPS会话,使您能够远程访问git资源库。
  2. 提供基于Web的前端界面(类似于非常简化版的GitHub),让您可以处理Bonobo的管理(用户、权限等)以及通过Web浏览器查看您的存储库内容。
您需要在“生产”和“部署”机器上都安装Bonobo,两个Bonobo服务器不会互相感知或通信——您的开发人员将必须将两个服务器设置为远程,并适当地推送到它们,或者您将必须安排其他自动化进程来执行此操作。

听起来很不错,正是我一直在寻找的——但它并不起作用。我已经在两台机器上安装了Bonobo,并且每台机器上都可以正常使用。在生产服务器上,我有一个TestRepo.git,bonobo给出了应该使用的URL,但如果我在部署服务器上打开命令行,然后输入“git remote add [alias] [IP地址]/TestRepo.git”,它会给出致命错误“不是git存储库”。我已经尝试了多种方法,但都没有成功。而且,Bonobo网站在确定问题所在方面并没有提供任何帮助。 - user4333011
远程应该看起来像 git remote add [alias] http://ipAddress/TestRepo.git - Will Dean
当你说“它在每台机器上单独工作良好”时,你是指当地在每台机器上可以访问Web界面吗?还是其他什么? - Will Dean
嗨Will,感谢你的帮助。我尝试了你建议的http变体和其他一些方法,但都没有成功。我刚刚重新尝试了你上面列出的那个方法,但仍然出现致命错误 -“不是git存储库<或任何父目录>:.git”。是的,我可以分别访问两台机器上的Web界面。我可以从Web界面或命令行访问它们各自的机器并创建/删除存储库。 - user4333011
确保您也可以远程访问Web界面,使用普通的Web浏览器 - 您可能会发现Web浏览器给出的诊断信息比git.exe更有用(尽管您也可以在git.exe中打开它们)。 - Will Dean
谢谢你的提示。我没想到 - 当我尝试从浏览器访问时,出现了404错误。等一下 - 看起来根IP指向的是子目录而不是主wwwroot目录。我会花点时间研究一下,并回报情况。 - user4333011

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接