在Windows中托pipeGit存储库

目前是否有办法在Windows中托pipe共享的Git存储库? 我知道你可以在Linux中configurationGit服务:

git daemon 

有一个本地Windows选项,共享文件夹不足,主办一个Git服务?

编辑:我目前正在使用git的cygwin安装来存储和使用git仓库在Windows中,但我想采取托pipe存储库的服务,可以提供访问其他人的下一步。

这里有一些步骤可以使git守护进程在Windows下运行:

(先决条件:一个默认的Cygwin安装和一个支持git守护进程的git客户端)

第1步 :打开一个bash shell

步骤2 :在/ cygdrive / c / cygwin64 / usr / local / bin /目录下,创build一个名为“gitd”的文件,内容如下:

 #!/bin/bash /usr/bin/git daemon --reuseaddr --base-path=/git --export-all --verbose --enable=receive-pack 

步骤3 :从提升的提示(例如admin)运行以下cygrunsrv命令,将脚本安装为服务(注意:假定Cygwin安装在C:\ cygwin64):

 cygrunsrv --install gitd \ --path c:/cygwin64/bin/bash.exe \ --args c:/cygwin64/usr/local/bin/gitd \ --desc "Git Daemon" \ --neverexits \ --shutdown 

步骤4 :运行以下命令启动服务:

cygrunsrv – 开始gitd

你完成了。 如果你想testing它,这里是一个快速和肮脏的脚本,表明你可以把git协议推到你的本地机器上:

 #!/bin/bash echo "Creating main git repo ..." mkdir -p /git/testapp.git cd /git/testapp.git git init --bare touch git-daemon-export-ok echo "Creating local repo ..." cd mkdir testapp cd testapp git init echo "Creating test file ..." touch testfile git add -A git commit -m 'Test message' echo "Pushing master to main repo ..." git push git://localhost/testapp.git master 

GitStack可能是你最好的select。 在撰写本文时,它目前是免费的(最多2个用户) 和开放源代码

这是一个专用于Windows的git服务器: https : //github.com/jakubgarfield/Bonobo-Git-Server/wiki

如果你在Windows环境下工作,你考虑过Mercurial吗? 它是一个像Git这样的分布式版本控制系统,但与Windows整合得更加整洁和容易。

如果得到错误cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started. 运行命令后:

 cygrunsrv --start gitd 

这意味着你没有创build“基本path”文件夹。

创build文件夹“/ git”并重新运行该命令将解决此问题。

安装CygWin是一个矫枉过正的问题,请阅读本教程,了解如何更快速地完成本地操作:

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

我目前正在Windows上使用cygwin的ssh守护进程,并允许远程访问我的repo。 它工作的很好,我完全可以控制谁通过他们的ssh证书访问我的repo,并且即使通过远程WAN和VPN链接,性能也是如此。

另一个解决scheme是使用Gitosis 。 这是一个使托pipe回购更容易的工具。

你有没有考虑使用cygwin层? 看到这个链接 。

您不需要托pipe服务,也可以在共享驱动器上创build共享存储库。 只需创build一个裸仓库。 你可以使用“git clone –bare –shared [source] [dest]”将现有的repo克隆到共享目录中。 你也可以使用“git init –bare –shared = all”来初始化一个新的仓库。

亨克

现在msysGit支持git守护进程! 它工作正常(至less对我来说)。 我会尽量让它作为服务运行…

SCM经理

  • 轻量级的Git,Mercurial, 从一个盒子的 Subversion仓库重用服务器(只需要Java)
  • 用于pipe理用户,ACL和回购的Web界面

在Windows上,您还可以使用DAV扩展,通过HTTP或HTTPS上的Apache来服务Git存储库。

然后可以使用Apache身份validation检查(如限制某些IP地址或htpasswd / htdigesttypes身份validation)来保护Git存储库path。

使用htpasswd / htdigest身份validation的限制是:用户名:密码在所请求的Git URL中传递,因此将对Git URL的访问限制为某些IP地址更好。

编辑:请注意,您可以将密码从Git URL中取出,而Git会提示您input推送和取出/拉取的密码。

使用HTTPS意味着所有的数据在传输中被encryption。

这很容易build立和运作。

以下示例显示了通过IP地址访问控制和用户:通过标准HTTP进行的密码组合。

示例Apache虚拟主机

 ## GIT HTTP DAV ## <VirtualHost *:80> ServerName git.example.com DocumentRoot C:\webroot\htdocs\restricted\git ErrorLog C:\webroot\apache\logs\error-git-webdav.log <Location /> DAV on # Restrict Access AuthType Basic AuthName "Restricted Area" AuthUserFile "C:\webroot\apache\conf\git-htpasswd" # To valid user Require valid-user # AND valid IP address Order Deny,Allow Deny from all # Example IP 1 Allow from 203.22.56.67 # Example IP 2 Allow from 202.12.33.44 # Require both authentication checks to be satisfied Satisfy all </Location> </VirtualHost> 

例如.git / config

 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = http://username:password@git.example.com/codebase.git [branch "master"] remote = origin merge = refs/heads/master 

在工作中,我正在使用安装在Windows Server上的GitBlit GO。 完美地工作,并与ActiveDirectory良好集成,以进行用户validation和授权。 它也是免费和开源(Apache许可)

GitBlit主页

只有HTTP(S)访问被支持,没有SSH,但在Windows下,你不需要任何东西。

这是对7岁以上的问题的2015年答案。

https://bitbucket.org/product/server获得一次性支付10美元的费用,就可以为;10个用户购买64位Windows许可证。

显然32位版本只能通过他们的存档来使用。

Bitbucket服务器以前被称为Stash

请注意,我还没有尝试过这个版本,但10美元似乎是一个很好的交易, 在这里我读了Atlassian慈善捐赠10美元。 FWIW

我认为亨克所说的是,你可以在一个驱动器上创build一个共享库,然后把它复制到你们都可以访问的一个公共位置。 如果有一些公司的服务器或者你们都可以访问的东西,那么你可以把这个存储库放在一个SCP的地方,然后把SCP放回到你自己的计算机上,然后从中取出。 因为我有两台电脑,所以我为自己做了一些。 这是一个麻烦,但它确实有效。

对于Windows 7 x64和Cygwin 1.7.9,我需要使用/ usr / bin / gitd作为cygrunsrv的args参数

 cygrunsrv --install gitd \ --path c:/cygwin/bin/bash.exe \ --args /usr/bin/gitd \ --desc "Git Daemon" \ --neverexits \ --shutdown 

另外,我需要以pipe理员身份运行bash来安装服务。