我的发布文件的名称取决于commit=$(git rev-parse --short HEAD)
,我想将发布文件放到我的git repo中。什么时候修改提交,$commit
发生了变化,是否可以在$commit
之后重用git commit --amend
?
答案 0 :(得分:1)
不,这是不可能的。
以下是sha-1中的一些内容,ylabel(['\fontsize{16}{0}\selectfont $\dot{x}$'], 'interpreter','latex');
返回的值会导致sha-1发生变化:
,最重要的是
答案 1 :(得分:0)
git commit --amend --no-edit
这会保留提交消息(如果这是你想要的)
答案 2 :(得分:0)
不,这是不可能的。
这是因为Git在基础层面的工作方式。 Git中的每个提交,以及Git中的所有 else ,都是一个名为 blob 的二进制对象。
某些blob是您正在存储的文件的特定修订版;这些斑点独立于所有其他斑点。但是,有些斑点指的是其他斑点。用于引用另一个blob的键是blob本身的sha-1哈希。提交对象递归地引用其父提交(通过它们的哈希)以及包含 提交的存储库状态的所有对象。 commit blob还包含元数据,包括时间戳和提交消息。
因此,当您更改提交的提交消息时,您正在更改blob的内容,因此sha-1是不同的。与任何散列算法一样,即使对于小的更改,sha-1输出非常也不同(这是散列算法的一个重要部分)。
没有办法避免这种情况。 blob由其内容的sha-1引用;提交消息是一个blob; commit-blob必须以某种方式包含提交信息,包括提交消息。