在Windows上使用msysgit搭建Git服务器

163

我和朋友们正在尝试使用教程 Git服务器:在Windows上使用Gitosis和Cygwin 在Windows上设置Git,但我们一直遇到问题。

如果使用msysgit,那么在Windows上设置“安装Git服务器”的指南会是什么样子呢?

上面的教程评论中有人表示无法使用msysgit,因为gitosis需要使用SSH服务器和Bash?是否有逐步指南(因为目前没有可用的指南)?

  1. 安装msysgit


- Rook
我按照计算机语言学家的建议,在尝试了上述方法并失败后,使用了http://www.windowsgit.com上的工具。它非常容易使用,而且效果很好。在我看来,这$9花得非常值得。 - Edward Anderson
你可以尝试使用Git Candy,这是一个基于ASP.NET MVC的Git平台。源代码在http://github.com/Aimeast/GitCandy上,演示地址为http://git.53wb.com/。 - Aimeast
12个回答

79

我发现了这篇帖子,并在我的博客上发布了一些可能有用的内容。

请查看在Windows上使用copSSH搭建Msysgit服务器。虽然篇幅较长,但我已经成功地在Windows 7 Ultimate x64上实现了此操作。


5
据我所知,在Tim的指示中的第5.5步,你需要在#之前插入额外的命令,而不是之后(否则它将保持被注释掉的状态)。 - Benjol
1
你可以看一下 http://windowsgit.com。 - Lilith River
6
请注意,Copssh不再在sourceforge上提供,并且自2012年4月起不再免费。 - TiansHUo
2
@Tim,你能把你博客文章的内容重新发布在这里吗?如果你的博客下线了,那么这个答案就没有用了。 - Starfish
1
@Starfish - 这就是web.archive.org的用途!这里是Tim关于它的文章:http://web.archive.org/web/20100207010332/http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/ - alldayremix
显示剩余4条评论

27

Bonobo Git Server for Windows

来自Bonobo Git Server网页:

Bonobo Git Server for Windows是一个Web应用程序,您可以在其中安装IIS并轻松管理和连接到您的Git仓库。

Bonobo Git Server是一个开源项目,您可以在github上找到源代码

特点:

  • 安全和匿名访问你的Git仓库
  • 用户友好的Web界面管理
  • 基于用户和团队的仓库访问管理
  • 仓库文件浏览器
  • 提交浏览器
  • 本地化

Brad Kingsley有一个不错的教程,介绍如何安装和配置Bonobo Git Server。

GitStack

Git Stack是另一个选择。以下是他们网站上的描述:

GitStack是一款软件,让您可以为Windows设置自己的私有Git服务器。这意味着您可以创建一个领先的版本控制系统而无需任何Git知识。 GitStack还使保护和更新服务器变得非常容易。 GitStack基于真正的Git for Windows构建,并与任何其他Git客户端兼容。 GitStack对于小团队来说完全免费1

1基础版免费供2个用户使用。


1
GitStack只免费支持最多5个用户。一旦超过此限制,您将进入基于用户数量的每年定价模式。请参阅GitStack网站上的价格页面 - Simon Elms
2
请注意,Bonobo Git Server 的原始开发者 Jakub Chodounský 在 2012 年 1 月的一篇论坛帖子中表示他无法再继续支持该项目。 - Simon Elms
2
GitStack现在只免费支持最多2个用户。 - M4N
2
Bonobo 项目再次活跃起来了。 - Tomas Kubes
2
请记得激活IIS > WWW服务 > 应用程序开发功能 > ASP.NET 4.5。Bonobo对我很有效,而GitStack(甚至无法使用主流的msysgit)则不行,而且Bonobo是开源和MIT许可证!这为Windows提供了一个令人满意的解决方案,尽管我更喜欢使用Unix机器来完成此任务。 - Will

26
关于提到 Tim Davis 页面的参考 - 在 Windows 上使用 copSSH 设置 Msysgit 服务器 - 我使用此方法在 Windows 7 Home Premium 64 上运行 Git 服务器。
以下是我在遵循他的指示后学到的一些补充内容和总结。
像 Tim Davis 所说的那样,这是一个艰难而令人沮丧的过程,至少对我来说是这样 - 我不太擅长集成这种技术,但我在这个过程中学到了很多。我希望我的经历可以使别人受益,因为这是一个繁琐的过程。
  1. 将所有 Git 可执行文件复制到 CopSsh bin 目录中,这一步骤需要复制文件并找出所需的文件。可以直接将 git bin 路径添加到您的 git 路径中,我通过修改我的 .bashrc 和 CopSsh 配置文件来实现。
  2. 以下是我在 .bashrc 中添加的内容(位于 CopSsh 和 Windows 主目录):

    gitpath='/cygdrive/c/Program Files (x86)/Git/bin'

    gitcorepath='cygdrive/c/Program Files (x86)/Git/libexec/git-core'

    PATH=${gitpath}:${gitcorepath}:${PATH}

    以下是我在 bash profile 中添加的内容(位于 CopSsh 等/profile):

    gitpath='/c/Program Files (x86)/Git/bin'

    gitcorepath='cygdrive/c/Program Files (x86)/Git/libexec/git-core'

    export PATH="/bin:$syspath:$gitpath:$gitcorepath:$winpath"

    这里有一些重复,但它对我有用,希望其他人能说明正确修改路径的位置。

  3. 较新的 msysgit 版本可能不会给您提供选择 ssh 可执行文件的屏幕,您需要手动设置 GIT_SSH 如果您使用 PuTTY。
  4. 我没有遵循指令的一部分,那就是安装 Tortoise - 我使用命令行而不是 GUI,因为这是我学习像 rcs 和 Subversion 这样的 vcs 的方式,发现对我有用。我在使用 ssh 进行 clone 命令时遇到了问题。以下是我的解决办法:

    Git clone using ssh - can't find repository

    这是我最费力想明白的部分。

  5. CopSsh 安装目录为 /Program Files (x86)/ICW。我成功地使用了它,但如果我再做一次,我会使用没有空格的目录名称。
  6. 以下其他来源帮助我理解这些内容:

    在 Windows 上设置 Git 服务器的另一种方法:

    http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP

    客户端相关:

    http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository

    关于 Git 作为服务器的解释(与 Windows 无关,但比安装步骤更深入):

    http://progit.org/book/ch4-0.html

    此外还有 O'Reilly 的《使用 Git 进行版本控制》- 远程仓库一章。

回想起来,如果我当时知道这会占用这么多时间,可能会从Mercurial开始,因为我看到Windows上的安装更容易,但在使用Git一段时间后再尝试Mercurial后,我会有自己的看法。


我在 CopSSH 步骤上遇到了问题。CopSSH 的链接已经不存在了……我被重定向到 http://sourceforge.net/projects/sereds/files/,我只能下载 cwRsync_4.0.4_Installer.zip 而不是 CopSSH 安装程序。有什么建议吗? - boo-urns
这是我使用的链接:http://www.itefix.no/i2/node/27 - Steve
1
截至2011年11月,Copssh是一种商业解决方案。版本3.0.3已经免费提供。 - mateuscb

20

我不确定为什么没有人建议 http://gitblit.com。这是一个纯基于Java的解决方案,允许使用HTTP协议,并且非常易于设置。


谢谢你的负评。你能告诉我为什么对这条评论进行了负评吗? 请公正一点。 - Pritesh Patel

16

在跟随Tim Davis的指南和Steve的后续操作之后,我做了以下步骤:

服务器PC

  1. 安装CopSSH和msysgit。
  2. 在创建CopSSH用户时,请取消选中“密码验证”,并选中“公钥验证”,以便您的公共/私有密钥能够正常工作。
  3. 使用PuTTygen创建公共/私有密钥,并将两个密钥放入用户的CopSSH/home/user/.ssh目录中。
  4. 将以下内容添加到用户的CopSSH/home/user/.bashrc文件中:

    GITPATH='/cygdrive/c/Program Files (x86)/Git/bin'
    GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
    PATH=${GITPATH}:${GITCOREPATH}:${PATH}
    
  5. 打开Git Bash并在您的电脑上任何地方创建一个存储库:

  6. $ git --bare init repo.git
    Initialized empty Git repository in C:/repopath/repo.git/
    

客户端电脑

  1. 安装 msysgit。
  2. 使用在服务器上创建的私钥从 ssh://user@server:port/repopath/repo.git 克隆您的仓库(由于某些原因,根目录为 C: 驱动器)。

这使我成功克隆和提交,但我无法推送到服务器上的裸仓库。我一直得到以下错误:

git: '/repopath/repo.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

这引导我到Rui的追踪和解决方案,即在您客户端电脑的%USERPROFILE%路径(C:\Users\UserName)中创建或添加以下行到.gitconfig中。

[remote "origin"]
    receivepack = git receive-pack

我不确定为什么需要这样做...如果有人能提供见解,这将是有帮助的。

我的 Git 版本是 1.7.3.1.msysgit.0。


8

GitStack 可以满足你的需求。它具有向导安装程序,适用于2个用户且具有基于Web的用户界面。它基于 msysgit。


1
来自GitStack网站的Pricing:免费支持5个用户,6-10个用户每年299美元,11-25个用户每年499美元,以此类推,最多支持500个用户每年2999美元。 - Simon Elms
1
GitStack 现在只免费供 2 个用户使用。 - M4N
因此,为设置服务器的用户提供1个用户,为访问服务器的客户端提供1个用户。这个限制太严格了。在现实世界中,2名开发人员的团队太小了。 - ZhaoGang

7

有一个名为 Git Blit 的不错的开源 Git 堆栈。它适用于不同的平台和不同的软件包。您还可以轻松地将其部署到现有的 Tomcat 或任何其他 Servlet 容器中。请查看在几个点击内在 Windows 上设置 git 服务器教程以获取更多详细信息,基本设置只需要大约10分钟。


运行得非常好,非常感谢。 - Johann
欢迎,我很高兴这对您有所帮助。 - Ruslan Platonov
这是一个不错的选择,对我来说易于使用。尚未测试过远程git提交,但我认为它会起作用。顺便提一下,该链接已经不再可用了。 - ZhaoGang
链接已经不存在。 - Shihe Zhang

3

在共享git时,您不需要使用SSH。如果您在局域网或VPN上,可以将git项目导出为共享文件夹,并在远程计算机上挂载它。然后使用“file://” URL而不是“ git@” URL来配置远程存储库。只需花费30秒钟即可完成!


2
可能并没有这样的指南。如果是这样,你可能无法说服任何人写一个,因为那将是很多工作。
我建议采取以下两种方法之一。更容易的方法是奴隶般地遵循你所拥有的指南,这意味着忘记msysgit。
更困难的方法是搭建一个Linux服务器——也许作为Windows下的客户机,使用VirtualBox(免费)或VMWare或Parallels(付费),然后按照谷歌会引导你到的众多说明之一进行操作。但你可能会发现那些说明是不充分的——它们通常假定你已经设置好了ssh服务器,例如,所以你必须从其他地方获取该信息。我已经做过两次了,可以说,除非你已经是一名Linux大师,否则这将是一场斗争。

1

我按照Bob Murphy建议的“困难”选项去做了。

我在工作中安装了VMWare Server(免费版)下的Ubuntu,然后按照这个指南设置了Gitosis。我发现这比在Windows下运行Gitosis要容易得多。一旦设置好了,你真的不需要再碰它,因为可以通过推送更新版本的gitosis.conf文件来进行Gitosis管理。我需要直接在服务器上进行的任何工作都是通过PuTTY完成的,所以我不必使用可怕的VMWare Server界面。

我最近在家里尝试了VirtualBox,发现它比VMWare Server更好/更容易使用,所以值得一看。


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