2011-04-28 85 views
3

使用msysgit和copssh,是否有可能保护ssh部分,使其只能访问相关的git可执行文件,并且只能访问一个文件夹?在Windows上保护Git服务器?

我有一种感觉,Windows上的git服务器将比svn服务器更加开放,比如visual svn。我希望被证明是错误的。

+1

我非常推荐使用其中一个Git-HTTP项目。请参阅http://serverfault.com/questions/58425/setting-up-git-repository-on-remote-windows-server/163065#163065您试图使Windows的行为与UNIX相同。最好顺其自然。 – vdboor 2011-04-28 20:58:20

+0

@vdboor优秀!把它写成答案,以便将其标记为答案。 :) – 2011-04-28 21:02:23

回答

1

我非常推荐使用其中一个Git-HTTP项目。 看到我的答案在:https://serverfault.com/questions/58425/setting-up-git-repository-on-remote-windows-server/163065#163065

您试图让Windows的行为像UNIX。 更好地使用流程,并使用基于.NET的解决方案作为Git服务器后端。


当你有一个小的2人项目的交易(如你在评论中提到的),你也可以托管在Windows网络共享git仓库。它只是起作用,并且可以在你的git客户端中克隆UNC路径(或映射的驱动器盘符)。

对于UNC路径,当使用斜杠代替反斜杠时(即//server01/git/myrepos.git)。

+0

谢谢! :)关于2人,这是一个空闲时间的项目,所以它不是在一个局域网,但仍然非常有用的知道。 – 2011-05-02 10:36:01

2

我会为您的中央Git存储库使用Linux服务器。安装gitolite。这将使你管理分支的权利等

UPDATE:

根据你最近的评论,只是去与unfuddle并用它在1分钟内完成。如果您担心使用它们提供的500MB空间,那么可以将大型非专用工件作为可以托管在github上的子模块进行存储。

希望这有助于!

+0

这个小型的2人空闲时间项目并非真正的选择,而是为了在更大的视野中有意义+1。 – 2011-04-29 00:09:33

+0

然后不要打扰任何安装,并与unfuddle。免费和私人。 – 2011-04-29 23:41:28

+0

@Carl R:为什么不能为你提供一个linux盒子? – splicer 2011-04-29 23:50:39

2

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

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

和未来的访问控制,我会建议你保持它的简单,并有一个访问的c​​onf文件SVN甚至gitolite/Gitosis的,写在Git的回购简单的挂钩(在Python和Ruby等)

钩子将为您提供Git仓库的相当好的控制。您可以控制每个分支的签到,特定文件夹的签入等。

看看git hooks手册页。 pre-receiveupdate是您可以用于此目的的挂钩。

看从临Git的关于如何使用服务器端的Git钩子强制执行政策,这真棒章 - https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy

您可以轻松地调整并添加功能,以满足您的目的。

+0

我真的赞赏了答案。 +1但是我开始感觉更像是需要一个专门的服务器管理员才能在两个人之间私下使用git。 – 2011-04-29 08:48:26

0

当我开始考虑建立企业git的服务,我们有以下要求:1。 管理git仓库的项目,在这里我们可以提供自助服务访问在项目级控制。 2. LDAP登录集成 3。低管理努力

我评估了香草git,git + git-http,gitolite。这些解决方案需要管理员来管理访问控制。如果球队很大,这将是一项重大的努力。如果团队很小(5-10个开发人员),则可以使用vanilla git。

我看着github企业,使用github,后来bitbucket。我们最终购买了bitbucket,并且已经启动了一个on-prem版本。 bitbucket满足我们所有的要求。另外,我们可以选择性地将一些AD组同步到bitbucket,并在组级别管理访问。