2015-12-29 28 views
0

我希望能够在我的项目文件夹内正好2种方式调用一个Git挂钩:'提供'(也是'重新部署')git钩子的最佳实践?

  1. 更新代码到最新版本,我会打电话给软部署
  2. 提供空的目录(或重新部署),我会打电话给硬盘部署

一个软部署使用的大部分时间。它只是更新我的开发服务器上的代码,例如git pull。这个git钩子明显是合并后

A 硬部署是我困惑的地方。有时候我想让这个项目重新部署。这里有一个例子:我想让我的Dev服务器刷新它的数据库并用虚拟数据重新填充它。我不想在每次git pull上都这么做,只有一个Hard Deploy。在git语法中,这可能是resetcheckout,或者可能是git pull -f。我想如果git语法在普通开发人员的心目中与Hard Deploy自然等同。也许硬重置会让人觉得重新部署?尽管在初始git checkout上发生的事情是必要的,但硬重置并不是平均开发人员在首次结帐后运行的事情。

我的想法是后结账可能是把注意力集中在了硬部署最好的钩子。主要的问题是,当我在我的本地开发环境中的分支之间跳转时,我的本地开发环境为git checkout mastergit checkout develop,我不希望它重新设置&重新缓存所有内容每次。我宁愿没有3钩解决方案:'部署','更新','重新部署'。为简单起见,'部署'重新部署'使用相同的挂钩将会很好。

所以这是我确切的问题:我应该使用什么混帐挂钩时,我想硬部署(相对于软部署)我的项目?

回答

1

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

如果你想添加一些“语法糖”,你可以在git中定义别名。下面是本地并称别名您的仓库里的一个例子:

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

(该!告诉混帐运行外部命令,而不是一个git子命令)

然后,用户可以只运行git harddeploy