在Windows上保护Git服务器?

3
使用msysgit和copssh,是否可以保护ssh部分,使其只能访问相关的git可执行文件,并限制其仅访问一个文件夹?
我有一种感觉,在Windows上运行的Git服务器将比Visual SVN等SVN服务器更加开放。我希望被证明是错误的。

1
我非常推荐使用Git-HTTP项目之一。请参见http://serverfault.com/questions/58425/setting-up-git-repository-on-remote-windows-server/163065#163065。你试图让Windows表现得像UNIX,最好跟随潮流。 - vdboor
@vdboor 很好!请把它写成答案,这样我可以将其标记为答案。 :) - Carl R
5个回答

2
我建议您使用Linux服务器作为中央Git存储库。安装gitolite,可以管理分支权限等。更新:根据您最近的评论,只需使用Unfuddle并在1分钟内完成即可。如果您担心使用他们提供的500MB空间,可以将大型非私有构件存储为子模块,然后在GitHub上托管。希望这可以帮到您!

这个只有两个人在业余时间做的小项目中并不是一个真正的选择,但在更大的视野中有意义。 - Carl R
不需要安装,直接使用Unfuddle。免费且私密。 - Adam Dymitruk
@Carl R:为什么Linux系统不是你的选择? - splicer
这是另一回事要管理。我个人很喜欢它,但我可以看出第一次设置时它可能会浪费宝贵的时间。对我来说,在组织中它是我的首选。对于一个两人项目并在家工作使用IP,Unfuddle是我最喜欢的选择 - 它是免费的! - Adam Dymitruk
1
我们更喜欢自己处理。 :) - Carl R
如果只有你们两个人,请将双方设置为彼此的远程。 - Adam Dymitruk

2
在Windows系统中,我发现Apache和Smart Http(git-http backend)是托管Git服务器的最佳方式。

https://web.archive.org/web/20100308035130/http://progit.org/2010/03/04/smart-http.html

关于访问控制,我建议您保持简单,并使用访问配置文件svn或甚至是gitolite/gitosis,并在Git存储库中编写简单的钩子(使用Python、Ruby等语言)。
这些钩子将为您提供对Git存储库的相当好的控制。您可以控制每个分支的提交、特定文件夹的提交等。
请查看git hooks手册。"pre-receive"或"update"是您可以用来实现此目的的钩子。
请参阅Pro Git中有关如何在服务器端使用Git hooks强制执行策略的精彩章节 - https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy 您可以轻松调整它们并添加功能以满足您的目的。

我非常感谢这个答案。+1 但是我开始觉得我需要一个专门的服务器管理员才能在两个人之间私下使用git。 - Carl R

1

我非常推荐使用Git-HTTP项目之一。 请参阅我的答案:https://serverfault.com/questions/58425/setting-up-git-repository-on-remote-windows-server/163065#163065

你试图让Windows像UNIX一样运行。 最好跟随潮流,使用基于.NET的解决方案作为Git服务器后端。


当你在处理一个小的两人项目时(正如你在评论中提到的),你也可以将 Git 仓库托管到 Windows 网络共享上。这很简单,你只需在 Git 客户端中克隆 UNC 路径(或映射的驱动器号)即可。

对于 UNC 路径,使用斜杆代替反斜杠(例如://server01/git/myrepos.git)。


关于两个人的问题,这是一个业余项目,因此它不在局域网上,但仍然非常有用。谢谢! :) - Carl R


0
当我开始考虑设置企业 Git 服务时,我们有以下要求: 1. 将 git 存储库管理为项目,可以在项目级别提供自助访问控制。 2. LDAP 登录集成 3. 管理工作量低
我评估了原始的 Git、Git + Git-HTTP 和 Gitolite。这些解决方案需要管理员来管理访问控制。如果团队很大,这将是一项重大任务。如果团队很小(5-10个开发人员),那么使用原始的 Git 就可以。
我看了看 Github Enterprise,使用了 Github,后来试用了 Bitbucket。最终我们购买了 Bitbucket 并部署了本地版。Bitbucket 满足了我们所有的要求。此外,我们可以有选择地同步 AD 组的一些内容到 Bitbucket,并在组级别上管理访问权限。

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