【发布时间】:2017-12-07 08:33:15
【问题描述】:
我正在尝试生成存储库的当前 git sha1。 我不希望可以使用一组 git 命令生成的最后一次提交 sha1。我想要将在下一次提交中使用的 sha1(显然,如果文件没有更改)。
我希望能够生成一个包含 sha1 存储库定义的头文件。这将允许我将可执行文件与相对 git commit 相匹配,反之亦然。
问题在于并非每个可执行文件都是通过稳定的提交创建的(尤其是在开发阶段)。
出于这个原因,我选择将两者都包括在内: - 最后一次提交 sha1 - 当前存储库 sha1
如果它们匹配,则表示当前可执行文件是使用稳定提交创建的。否则,这意味着您可以只知道可执行文件的起始提交是什么。
有人可以帮我吗?
【问题讨论】:
-
构造提交对象内容并计算其校验和。
-
但是,如果没有文件更改,为什么还需要再次提交?提示提交的 SHA 应该足够好?您想在这里解决哪个问题?
-
但是,您将计算的是 一个可能的提交 sha,而不是 下一个提交 sha。提交的时间与校验和相关,这意味着您必须预测未来才能做到这一点。当你解决了这个问题时告诉我,我们可以解决你提出的问题。请详细说明您想要完成的任务。
-
也许您可以将git describe 与
--dirty(和--always)标志一起使用?