我对GIT很新,所以请原谅我任何愚蠢的问题(如果有这样的话):
非常感谢任何帮助!
答案 0 :(得分:4)
我需要保证回购;任何人都可以指点我如何在Windows机器上实现它的教程?
“确保回购”究竟是什么意思?刚刚处理暴露在互联网上的服务器?在这种情况下,SSH应该足够了。如果它只是你,我可能不会打扰像gitolite这样的任何东西 - 只需在服务器上创建一个裸存储库,并且不要通过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
如果您的生产站点不是存储库,我可能会这样做:
# 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
显然,我是Linux用户,因此这些说明可能需要对Windows进行一些修改,但这个想法应该非常明确。
答案 1 :(得分:1)
公共HTTP目录最好不是git存储库,以防万一 - 你的完整git历史应该是私有的。您可以在硬盘驱动器上的某个位置保留一个不由HTTP服务器提供服务的存储库,并使用git checkout-index
或git archive
创建仅限内容的快照(请参阅this question)。
SSH非常适合您的目的,安全并提供良好的性能。
不要使用补丁 - 通过SSH使用push / pull同步树,然后为生产和测试站点获取相关分支。协议是有效的,不应该花很长时间来同步。您甚至可以连续同步,而不仅仅是在您想要部署时。
您可以尝试these instructions from Lifehacker在cygwin上使用openssh设置ssh服务器。
在Windows上设置git 客户端比较简单,因此您可以考虑使用外部git存储库(在* nix机器上设置很简单,或使用hosted git repository并从您的开发机器推送,然后从您的测试和生产机器中拉出。