首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:如何在commit之间重用commit rev --修改?

Git:如何在commit之间重用commit rev --修改?
EN

Stack Overflow用户
提问于 2016-04-01 03:53:04
回答 3查看 119关注 0票数 0

我的发布文件的名称取决于commit=$(git rev-parse --short HEAD),我想把发布文件放到我的git。当某些修改提交时,$commit更改,是否可以在git commit --amend之后重用$commit

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-01 04:28:31

不,这不可能。

下面是沙-1中的一些内容,这是git rev-parse --short返回的值,它将导致sha-1发生变化:

  • 作者姓名
  • 承诺日期
  • 提交消息
  • 父母名单

最重要的是

  • 存储库中所有文件和目录中的sha-1。即使在其中一个文件中添加一个空格字符,也不可能再次获得相同的sha-1。
票数 1
EN

Stack Overflow用户

发布于 2016-04-01 04:13:11

git commit --amend --no-edit

这将保留提交消息(如果这是您想要的话)

票数 0
EN

Stack Overflow用户

发布于 2016-04-01 04:24:36

不这是不可能的。

这是因为Git在基本水平上是如何工作的。Git中的每个提交,以及Git中的其他所有东西,都是一个名为blob的二进制对象。

有些blobs是您正在存储的文件的特定修订;这些blobs独立于所有其他blobs。不过,有些斑点指的是其他的斑点。用于引用另一个blob的键是blob本身的sha-1散列。提交对象递归地引用其父提交(通过其散列)和构成该提交的存储库状态的所有对象。commit blob还包含元数据,包括时间戳和提交消息。

因此,当您为commit更改提交消息时,您正在更改blob的内容,因此沙-1是不同的。与任何散列算法一样,沙-1的输出是非常不同的,即使是小的变化(这是哈希算法的很大一部分)。

没有办法避免这种情况。blob由其内容的sha-1引用;提交消息是blob;commit blob必须以某种方式包含提交信息,包括提交消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36347738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档