'provision'(也是"重新部署")git 钩子的最佳实践?



我希望能够在我的项目文件夹中以两种方式调用git钩子:

  1. 将代码更新到最新版本,我将称之为软部署
  2. 提供空目录(或重新部署),我将称之为硬部署

软部署大部分时间都在使用。它只是用git pull更新我的Dev服务器上的代码。这方面的git挂钩显然是合并后

硬部署是我感到困惑的地方。有时我想重新部署项目。这里有一个例子:我希望我的Dev服务器刷新它的数据库,并用伪数据为它重新设置种子。我不想对每次git pull都进行刷新,只想对硬部署进行刷新。在git语法中,这可能是一个resetcheckout,也可能是git pull -f。我希望git语法在普通开发人员心目中是否自然地等同于硬部署。也许一个硬重置会让一个人考虑重新部署?尽管在最初的git checkout上发生的一些事情是必要的,而且普通开发人员在第一次签出后不会运行硬重置。

我的想法是结账后可能是关注硬部署的最佳挂钩。主要的问题是,当我使用git checkout mastergit checkout develop在本地开发环境的分支之间切换时,我不希望它重新设置种子&每次都要重新调用所有。我不希望有一个三挂钩的解决方案:"部署"、"更新"、"重新部署"。如果有"deploy"&重新部署"使用相同的挂钩以简化操作。

所以我的确切问题是:当我想硬部署(而不是软部署TR

没有钩子可以让您轻松区分两个用例——在钩子中,您无法访问传递给git的命令行开关。最简单的方法可能是简单地将一个小shell脚本放在存储库中或旁边,并使用它进行硬部署。

如果你想添加一些"语法糖",你可以用git定义别名。以下是在存储库中本地添加别名的示例:

git config alias.harddeploy '!~/bin/myproject-harddeploy'

!命令告诉git运行外部命令,而不是git子命令。)

然后,用户可以直接运行git harddeploy

最新更新