我喜欢使用Github并且有兴趣了解git如何在幕后工作。我没有通过github.com接触过git的酷炫功能吗?
答案 0 :(得分:1)
原则上,所有Github都会托管您的Git存储库。您在存储库中执行的任何操作都要添加/修改其历史记录,这与Github提供的功能完全正交。任何差异/限制都存在于托管方面,因此真正的问题是:在您自己的服务器上自己托管您的存储库有什么不同?
在您自己的服务器上使用Git时,它允许您使用钩子机制提供自己的代码来检查并可能拒绝推送。这意味着您可以编写一个钩子脚本,例如,确保只有某些人可以将更改推送到存储库的某些子目录。当然,很多其他事情都可以做到 - 你只能受到想象力的限制。也许是现实。 ;)
当然,Github并不想运行您为存储库提供的任意代码,因此如果您的存储库在那里托管,那么您就无法做出精彩的自定义事务。它们允许您通过HTTP向其他服务器发送通知,因此,虽然您无法制定自己的限制推送规则,但至少可以让其他服务知道。< / p>
要了解自托管存储库还能做些什么,请查看Gitolite(抬头:设置它需要一定的服务器管理经验)。它还有一些额外的技巧来限制提取,即使Git没有提供钩子。