git - gitcherry pick时如何更新时间

标签 git

  1. 我理解正确吗?当cherry pick一个提交时,提交哈希ID和提交日期将会改变,但是AuthorDate仍然与之前的提交相同。

  2. 如果 1 为真,那么在选择时如何更新 AuthorDate

最佳答案

  1. 是的:新提交是一个提交,因此它必然具有不同的哈希 ID。 (现有的提交保留在存储库中。)由于这是一个新的提交,Git 会将您的名字指定为提交者,并将“现在”(或计算机对“现在”的最佳猜测)指定为新提交的时间。

    同时,git commit检查文件 CHERRY_PICK_HEAD 是否存在查看提交是否是由于樱桃选择所致。如果是,Git 会从原始提交中提取原始作者和作者日期。

    如果您提供--reset-author作为命令行标志,git commit会将作者重置为您自己或您指定的任何人。您还可以通过这种方式指定此时的作者日期。

  2. git cherry-pick命令无法通过 --reset-authorgit 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/

相关文章:

git - git stash create 和 git stash store 的目的是什么?

java - Windows 和 Mac 上的 Android 库项目

javascript - Node Git : move branch pointer to different commit without checkout

git - 无法重新索引 magento 1.7.0.2 停留在 "processing"

Git 强制推送语法, "-f"与 "+branch"

git - 如何使用其他用户凭据撤消对 GitHub 的意外推送

git - 使用 GitHub API 创建文件夹

git - checkout 时忽略 .gitattributes

git - 尝试将存储库克隆到其中包含 'aux' 目录的 Windows 7

node.js - 在 elasticbeanstalk 中设置 NODE_ENV 变量