我对GIT很新,所以请原谅我任何愚蠢的问题(如果有这样的话:)
任何帮助深表感谢!
我需要确保回购协议的安全;谁能给我指点如何在 Windows 机器上实现这一点的教程?
“保护回购协议”到底是什么意思?只是处理暴露在互联网上的服务器吗?在这种情况下,SSH 对您来说应该足够了。如果只有你,我可能不会为 gitolite 之类的花哨的东西烦恼 - 只需在服务器上创建一个裸存储库,并且除了通过 SSH 之外不以任何方式使其可用。我也不确定您需要什么设置建议 - 您只需要能够 ssh 进入计算机,并访问存储库的路径。
.git 文件夹是否需要驻留在公共 http 目录中,或者这对于安全性来说是一种不好的做法吗?
是否希望您的生产站点实际上成为一个存储库取决于您。它确实更容易摆弄,但您需要将 Web 服务器配置为不授予对 .git 目录的访问权限。如果您很偏执,那么也很有可能在没有存储库的情况下进行部署,例如使用git archive。这个想法只是将当前版本的副本转储到给定目录中。
我想使用 SSH 设置,因为 HTTP 速度慢且不安全。我还有哪些其他值得推荐的选择?
如果你想要安全,SSH 和 HTTPS 是需要考虑的两种 git 传输协议;确实没有任何理由去超越它们。SSH 应该更容易设置和使用。(Git 确实支持其他几种协议,但它们要么不是为了安全使用,要么只是没有广泛使用。)
最好建议我使用补丁还是将稳定/经过测试的分支合并到我的专用服务器?
我假设您在这里询问生产站点,因为您提到了测试分支。这当然取决于您是否有生产站点的存储库,或者它是否只是所有内容的签出副本。在前一种情况下,绝对没有理由使用补丁。只需拉入生产存储库:
cd /path/to/production-site
git pull /path/to/testing-site stable-branch
Run Code Online (Sandbox Code Playgroud)
如果您的生产站点不是存储库,我可能会这样做:
# check out a copy of the updated version
git archive --format=tar --prefix=new-site HEAD | (cd /var/www && tar xf -)
# swap it into place
mv /var/www/site /var/www/old-site
mv /var/www/new-site /var/www/site
rm -rf /var/www/old-site
Run Code Online (Sandbox Code Playgroud)
显然,我是一名 Linux 用户,因此这些说明可能需要针对 Windows 进行一些修改,但想法应该非常清晰。