使用git管理生产网站?

使用git管理生产网站?,git,version-control,git-clone,git-post-receive,git-bare,Git,Version Control,Git Clone,Git Post Receive,Git Bare,我有一个网站,在生产服务器上有大约15000个文件。一个远程开发人员现在正在站点上做大部分工作,但我偶尔也需要做一些编辑。很明显,我们需要一些版本控制,所以我正在尝试设置git 我真的希望保持设置简单明了。我们不需要任何类型的集成商来检查我们的更改-我们都完全相信能够将更改推送到生产站点。我也不认为有必要在使变更生效之前将变更推送到暂存服务器,因为我们没有什么可以在本地机器上测试的东西。我基本上只想要一些能防止我们互相攻击对方文件的东西。以下是我心目中的情景: Product

我有一个网站,在生产服务器上有大约15000个文件。一个远程开发人员现在正在站点上做大部分工作,但我偶尔也需要做一些编辑。很明显,我们需要一些版本控制,所以我正在尝试设置git

我真的希望保持设置简单明了。我们不需要任何类型的集成商来检查我们的更改-我们都完全相信能够将更改推送到生产站点。我也不认为有必要在使变更生效之前将变更推送到暂存服务器,因为我们没有什么可以在本地机器上测试的东西。我基本上只想要一些能防止我们互相攻击对方文件的东西。以下是我心目中的情景:

          Production Server
              ↗↙ ↖↘          
Developer1(LAMP)  Developer2(WAMP)
问题:

  • 对于一个由两个开发人员组成的团队(其中一个只做偶尔的编辑),这个工作流有意义吗?还是有更好的团队

  • 在开发人员和生产服务器之间添加登台服务器有什么好处吗

  • 我假设生产服务器应该是一个裸repo,带有指向webroot文件夹的post-receive钩子,我们将克隆一个副本到每个开发人员的机器上,然后git-commit/git-push将任何更改启动回生产

  • 有没有简单的方法可以在生产服务器上创建一个裸机回购,然后将站点现有的15000个文件添加到其中?或者我必须将它们下载到本地工作站上的克隆repo,然后通过git add/commit/push将它们加载到生产服务器repo中吗?(上传可能需要将近13个小时。)


  • 谢谢

    工作流本身没有问题。但通常,“规范”存储库是独立的,您可以使用其他一些机制(如rsync)手动部署到生产服务器。这样:

  • 您的生产服务器更新与您的开发工作流程无关。如果您的生产服务器(曾经!)在代码更改后需要执行任何工作,请重新启动Web服务器、刷新一些缓存、更改架构等,然后突然生产系统问题干扰了您更新代码的能力,这很糟糕

  • 您不必担心意外泄漏对
    .git
    目录的访问,并暴露所有源代码和开发历史记录

  • 破坏站点需要两次事故(破坏主机和部署),而不是一次(破坏主机)

  • 也许你们两个都不关心,但是让“更新站点”按钮具有与“更新代码”按钮不同的授权是很有用的

  • 暂存服务器的存在类似于生产,但容易损坏。你只有两个开发者,但你已经在使用完全不同的操作系统;我相当肯定你们中至少有一个人没有使用与生产环境相同的开发环境。:)

    不,您不能将文件添加到裸存储库中。您需要一个工作副本来处理工作树