这可能更多是一个技巧性的问题:
我正在使用git版本控制,并使用rsync将文件传送到 PHP CMS 的测试或生产站点。现在,我想使用一个可靠且自动化的系统跟踪当前部署的提交,我正在考虑以下方法:
设置一个git挂钩来添加/更新文本文件,其中包含最新的标签和提交哈希值。然后我可以轻松查找提交记录。
我的问题是,在pre-commit阶段,脚本将无法知道提交哈希值。是否有任何直接的方法来完成这个任务(或达到同样目的的另一种方法)?
提前感谢您的贡献!
这可能更多是一个技巧性的问题:
我正在使用git版本控制,并使用rsync将文件传送到 PHP CMS 的测试或生产站点。现在,我想使用一个可靠且自动化的系统跟踪当前部署的提交,我正在考虑以下方法:
设置一个git挂钩来添加/更新文本文件,其中包含最新的标签和提交哈希值。然后我可以轻松查找提交记录。
我的问题是,在pre-commit阶段,脚本将无法知道提交哈希值。是否有任何直接的方法来完成这个任务(或达到同样目的的另一种方法)?
提前感谢您的贡献!
好的,我认为我已经有一个可以的解决方案:
有一个名为post-commit的git钩子,以下是我的做法:
钩子文件的内容:
#!/bin/sh
git describe --tags > version.txt
现在我确信每次提交后文件都是最新的,只要在部署之前进行提交就可以了。既然您正在使用rsync来部署代码,那么可以像这样操作:
$ git describe --long > VERSION.txt
然后,将 VERSION.txt
包含在 rsync 包中。
git describe 字符串的格式如下:
$ git describe --long
r1.0-2-gca93d0a
version.txt export-subst
。还有我的 version.txt 文件内容:$Format:%H$
。 - Peter Ehrlich