我们陷入了一个非常不幸但不可避免的问题,即周期性地不得不立即部署我们代码的开发版本。一段时间后,我们无法确定谁的安装是基于代码库的哪个“中间”未标记版本。
git 是否提供了一些可嵌入到跟踪文件中的自动宏或令牌,这些文件会在“git clone”或诸如此类的情况下自动替换为来自 HEAD 的最新提交哈希 ID?
当然必须有办法做到这一点;即使是 RCS,按照当今酷孩子的标准,一个彻头彻尾的侏罗纪系统,也有一个可以替换的内置版本变量。
我们陷入了一个非常不幸但不可避免的问题,即周期性地不得不立即部署我们代码的开发版本。一段时间后,我们无法确定谁的安装是基于代码库的哪个“中间”未标记版本。
git 是否提供了一些可嵌入到跟踪文件中的自动宏或令牌,这些文件会在“git clone”或诸如此类的情况下自动替换为来自 HEAD 的最新提交哈希 ID?
当然必须有办法做到这一点;即使是 RCS,按照当今酷孩子的标准,一个彻头彻尾的侏罗纪系统,也有一个可以替换的内置版本变量。
正如您在 Ben James 在 commnets 中发布的问题的答案中看到的那样,人们担心使用 git 将提交哈希值放入文件中。
难道不能在 git 之外使用脚本解决方案吗?当您需要从 git 部署新版本时,您可以创建一个标签,检查它,然后再将您的发行版 tar.gz 或任何您添加到每个源文件的标签名称放在一起。猜猜有不同的方法可以通过 git-archive 或其他方式实现自动化。
我想知道的另一件事是,鉴于 git 根据它们的 SHA1 哈希值组织文件,你可能根本不需要任何这样的标记就可以逃脱。因此,您可以根据其 SHA1 确定给定文件属于哪个提交。看一下cat-file