7

情况

我们有一个 git 工作流,所有发布版本都堆叠在master分支上,当提交准备好部署时,我们为其添加标签,然后用于git archive构建要部署的包。

我们使用一个用 optionversion.txt标记的文件来跟踪用于构建给定存档的提交。.gitattributesexport-subst

问题

如果我写入并导出标记$Format:%d$version.txt提交,我将(HEAD, tag, master)在生成的文件中写入类似的内容。

我怎么能tag独享?

[编辑] 有一个 git 命令已经产生:

git describe --tags HEAD

这将输出:

latest_tag            #if HEAD is tagged

latest_tag-5-g03cc91b #if HEAD is not tagged,
                      #and the latest tag is 5 commits ago on commit g03cc91b

有什么方法可以用这个输出替换一个 slugversion.txt吗?

4

1 回答 1

3

您可以使用内容过滤器驱动程序,它会在 git checkout 上自动执行您想要的确切更改。

内容过滤河:涂抹

(来自Pro Git book 7.2 Customizing Git - Git Attributes

您在.gitattributes文件中声明一个smudge脚本,该脚本将替换一个特殊标记(您想用 替换git describe --tags HEAD),而无需触及其他要由export-subston修改的标记git archive

然后你打电话git archive,应该(未经测试)取代其余的。

于 2014-06-02T22:24:12.070 回答