如何在git cherry pick

时间:2018-02-19 00:49:23

标签: git

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

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

1 个答案:

答案 0 :(得分:2)

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

    同时,git commit检查文件CHERRY_PICK_HEAD是否存在,以查看提交是否归因于挑选。如果是这样,Git将从原始提交中提取原始作者和作者日期。

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

  2. git cherry-pick命令不会将--reset-author传递给git commit,所以在某种程度上,您不能。但是你可以做两件事。我们暂时退出这个一项一次的回顾。

  3. 如果您运行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