我猜git不是一个部署工具,但是,去年我一直在git checkout -f
内使用post-receive
而没有任何问题。
收到后挂钩
#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
现在我想通过做一些版本控制来进一步做些事情。 git标记。
例如我有我的项目的更新版本(v0.2)我觉得它更好,但是(v0.1)中可能删除了一些不错的功能我仍然希望看到和比较,也有许多其他原因。
以下是我对代码所需内容的解释,我的问题是如何才能使下面的工作达到最佳状态?
#!/bin/sh
$version = git tag
if ($version != $previousVersion) {
mkdir ../../../www/domain.com/$version/
}
git --work-tree=/var/www/domain.com/$version --git-dir=/var/repo/site.git checkout -f
显然有一些上面的缺陷,而且我真的不知道bash脚本,所以我将阅读有关创建变量和布尔值的内容。
上面我的问题是编写逻辑的最佳方法是什么,即比较版本(由于$previousVersion
不存在,因此甚至无法检查以上版本,我不确定如何检查最后推送的提交版本,或者甚至是一个东西)。
所以我想知道在post-receive
中需要完成哪些操作,这样如果有新的git tag
,我的--work-tree
又名{{1}会创建一个新文件夹结帐将文件推送到那里。