我对GIT很陌生,所以请原谅我任何愚蠢的问题(如果有这样的事情:)

设想

  • 我的开发机器上的一个本地存储库(Win 7,Eclipse)
  • 托管测试站点和生产站点的一台专用服务器(Win 2008 Server,管理员权限)

  • 目标
  • 能够在我的开发机上工作并将所有更改(在本地提交之后)推送到测试站点
  • 在专用服务器上测试后,我希望将更改从我的开发机发布到生产站点

  • 问题
  • 我需要保护存储库,任何人都可以将我指向如何在Windows机器上实现该目标的教程
  • .git文件夹是否需要驻留在公共(public)http目录中,或者这是安全性方面的不良做法?
  • 我想使用SSH设置,因为HTTP缓慢且不安全。我还有什么其他推荐的选项?
  • 最好建议我使用补丁程序,还是将稳定/经过测试的分支 merge 到我的专用服务器上?

  • 任何帮助深表感谢!

    最佳答案



    “保护 repo 协议(protocol)”到底是什么意思?只是处理暴露在互联网中的服务器?在这种情况下,SSH应该可以满足您的需求。如果只是您,我可能不会理会像gitolite这样的花哨的东西-只需在服务器上创建一个裸仓库,就不可以通过SSH使用它了。我不确定您需要什么设置建议-您只需要能够SSH到计算机中,并访问存储库的路径即可。



    是否要让您的生产站点真正成为存储库取决于您。它的确使您更容易弄弄,但您将需要配置Web服务器以不授予对.git目录的访问权限。如果您偏执狂,也可以在不将其作为存储库的情况下进行部署,例如使用git archive。这个想法只是将当前版本的副本转储到给定目录中。



    SSH和HTTPS是您需要安全性时要考虑的两个git传输协议(protocol)。确实没有任何理由超越它们。 SSH应该更容易设置和使用。 (Git确实支持其他几种协议(protocol),但它们都不是为了安全使用而已,或者根本就没有广泛使用。)



    我假设您在这里询问生产站点,因为您提到了经过测试的分支。当然,这取决于您是否具有生产站点的存储库,或者它只是所有内容的已 checkout 副本。在前一种情况下,绝对没有理由使用补丁。只需 pull 入生产存储库即可:

    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进行一些修改,但是这个主意应该很清楚。

    关于git - 单个开发人员Web项目设置的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5079851/

    10-14 19:43
    查看更多