为樱桃选择提交修改添加新的更改 ID
Commit amend for a cherry pick add a new change id
在我使用 git commit --amend
进行精选之后,我生成了一个新的更改 ID,因此我获得了一个包含 2 个更改 ID 的新提交。
如何修改才能不获取新的找零ID?
至少可以临时删除 change-id 生成器吗?
您所说的“更改 ID”称为 commit hash
(c.f。this article)。
它是作为您提交中所有输入的计算结果 (hash) 创建的,包括(但不限于)消息、内容和提交所在的位置(其基础或“parent”)。
When-ever 你 运行 git commit --amend
,你明确要求 git 更改(至少)消息以及自此提交以来你暂存的任何文件内容。这意味着,由于输入不同,输出哈希也会不同。即使您保持消息和内容相同,计算也会在当前系统时间重复,给出不同的哈希值。
无法 git commit --amend
并保持相同的散列。此外,cherry-picking 还更改了基数,re-computes 更改了散列,因此 cherry-pick 总是会产生一个新的散列。破解哈希以使其保持不变在理论上是可行的 (ref),但实际上并不可行。
“change-ID 生成器”不存在 -- git 根据提交的确切内容计算散列,并且它必须对其他 git 客户端来说是加密的。因此,它不能被禁用,也不能(可行地)被打败以确保它输出特定的哈希值。
在我使用 git commit --amend
进行精选之后,我生成了一个新的更改 ID,因此我获得了一个包含 2 个更改 ID 的新提交。
如何修改才能不获取新的找零ID?
至少可以临时删除 change-id 生成器吗?
您所说的“更改 ID”称为 commit hash
(c.f。this article)。
它是作为您提交中所有输入的计算结果 (hash) 创建的,包括(但不限于)消息、内容和提交所在的位置(其基础或“parent”)。
When-ever 你 运行 git commit --amend
,你明确要求 git 更改(至少)消息以及自此提交以来你暂存的任何文件内容。这意味着,由于输入不同,输出哈希也会不同。即使您保持消息和内容相同,计算也会在当前系统时间重复,给出不同的哈希值。
无法 git commit --amend
并保持相同的散列。此外,cherry-picking 还更改了基数,re-computes 更改了散列,因此 cherry-pick 总是会产生一个新的散列。破解哈希以使其保持不变在理论上是可行的 (ref),但实际上并不可行。
“change-ID 生成器”不存在 -- git 根据提交的确切内容计算散列,并且它必须对其他 git 客户端来说是加密的。因此,它不能被禁用,也不能(可行地)被打败以确保它输出特定的哈希值。