我理解正确吗?当cherry pick一个提交时,提交哈希ID和提交日期将会改变,但是
AuthorDate
仍然与之前的提交相同。如果 1 为真,那么在选择时如何更新
AuthorDate
?
最佳答案
是的:新提交是一个新提交,因此它必然具有不同的哈希 ID。 (现有的提交保留在存储库中。)由于这是一个新的提交,Git 会将您的名字指定为提交者,并将“现在”(或计算机对“现在”的最佳猜测)指定为新提交的时间。
同时,
git commit
检查文件CHERRY_PICK_HEAD
是否存在查看提交是否是由于樱桃选择所致。如果是,Git 会从原始提交中提取原始作者和作者日期。如果您提供
--reset-author
作为命令行标志,git commit
会将作者重置为您自己或您指定的任何人。您还可以通过这种方式指定此时的作者日期。git cherry-pick
命令无法通过--reset-author
至git commit
,所以在某种程度上,你不能。但您可以做两件事。现在让我们退出这次逐项回顾。
如果你运行git cherry-pick -n
而不是git cherry-pick
,cherry-pick 命令将不会运行 git commit
。你必须自己运行它。您可以使用 --reset-author
运行它,从而以这种方式调整作者。
或者,运行 git cherry-pick
并让它构建一个提交,你可以运行 git commit --amend --reset-author
。这会将现有提交复制到另一个新提交,其父级是现有提交的父级。新提交的作者是您(或您指定的任何人)。
请注意,“修改”提交确实会复制它! git cherry-pick
的提交制作仍保留在存储库中;它只是“被推到一边”,这样您就看不到它,并且您不会将其发送给 git push
的其他人。这一额外提交的成本非常低(基本上是一段时间内的一个最小大小的文件),因此没有充分的理由选择 git cherry-pick -n
超过git commit --amend --reset-author
.
关于git - gitcherry pick时如何更新时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48858262/