当前位置:  开发笔记 > 编程语言 > 正文

在Windows中托管Git存储库

如何解决《在Windows中托管Git存储库》经验,为你挑选了7个好方法。

目前有办法在Windows中托管共享Git存储库吗?我知道您可以在Linux中配置Git服务:

git daemon

是否有本机Windows选项,缺少共享文件夹,以托管Git服务?

编辑:我目前正在使用gg的cygwin安装来存储和使用Windows中的git存储库,但我想采取下一步托管存储库,其中包含可以提供对其他人的访问权限的服务.



1> Derek Greer..:

以下是在Windows下运行git守护程序时可以遵循的一些步骤:

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

第1步:打开一个bash shell

步骤2:在目录/ cygdrive/c/cygwin64/usr/local/bin /中,创建一个名为"gitd"的文件,其中包含以下内容:

#!/bin/bash

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

步骤3:从提升的提示符(即作为管理员)运行以下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 --start gitd

你完成了.如果你想测试它,这里有一个快速而又脏的脚本,它表明你可以将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


我从未将Cygwin解决方案视为"在Windows中工作".这就像说"在VM中运行Linux正在Windows中运行".但这只是我的纯粹观点;)
快速说明:/ usr/bin对我没有用,但放入/ bin工作(并在cygrunsrv中使用c:/ cygwin/bin/gitd).不知道我的cygwin安装的年龄有多大,但看起来/ usr/bin是一个链接到/ bin中的什么,windows不知道...还有点明显,但记得在c:/ cygwin /中创建文件夹/ git
@Rook - 相反,Cygwin工具套件与您可能安装的任何其他第三方应用程序没有什么不同.Cygwin不是一个虚拟机,而是一个预先打包的工具套件.它只是一组Windows可执行文件和dll,就像您机器上的其他所有内容一样.
如果我可以编辑这篇文章,我会添加以下内容:先决条件:安装了git和cygrunsrv软件包的cygwin.
另一个注意事项:完全限定gitd shell脚本中git的路径.在我的一台机器上,当作为Windows进程执行时,MSYSGit正在启动而不是cygwin-git.MSYSGit不支持守护程序模式,因此服务无法启动.

2> poiuytrez..:

GitStack可能是您的最佳选择.在撰写本文时,它目前是免费的(最多2个用户)和开源.


看起来仅限于开源或学生项目:"GitStack对于开源和学生项目是免费的!"

3> Daniel O..:

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


快乐的倭黑猩猩用户在这里.我相信安德烈和皮尔斯的担忧现在应该得到解决.TeamCity问题被标记为已关闭,我在使用中央集中式存储库方面没有遇到任何问题.

4> David Arno..:

如果您在Windows环境中工作,您是否考虑过Mercurial?它是一个像Git这样的分布式版本控制系统,但与Windows整合得更加简洁.


确实,在Windows机器上使用Mercurial要容易得多,至少就能够同步存储库而言.如果你真的必须使用Git,这不是一个非常有用的答案!

5> 小智..:

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

cygrunsrv --start gitd

这意味着您没有创建'base-path'文件夹.

创建文件夹'/ git'并重新运行该命令将解决此问题.



6> Alex Burtsev..:

安装CygWin是一种矫枉过正,请阅读本教程,了解如何更快地和本机化:

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



7> Matthew McCu..:

我目前正在Windows上使用cygwin的ssh守护进程来提供服务并允许远程访问我的仓库.它工作得很好,我可以完全控制谁通过他们的ssh证书访问我的repo,并且即使在远程WAN和VPN链接上,性能也会激活.

另一个解决方案是使用Gitosis.它是一个使托管存储更容易的工具.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有