【问题标题】:How to move a git note to a different commit?如何将 git note 移动到不同的提交?
【发布时间】:2017-05-18 01:31:22
【问题描述】:

我已经错误地记录了错误的提交。有没有一种简单的方法可以将其整体移动到不同的提交中?

我希望有一种方法可以在语义上将注释重新设置为不同的提交,但是最简单的方法会很高兴知道。我怀疑最简单的选择是使用桌面剪贴板复制粘贴文本。

【问题讨论】:

标签: git


【解决方案1】:

可能最简单的方法是复制并删除注释:

例如,要将 HEAD 注释移动到上一个提交,

# /!\ Be warned, this may be a destructive act

# git notes copy <source> <dest>
git notes copy HEAD HEAD^

# git notes remove <target>
git notes remove HEAD

附:修改提交时,注释不会自动迁移。

【讨论】:

    【解决方案2】:

    请注意,使用 Git 2.25(2020 年第一季度),“git notes 更加健壮:

    git note copy $original 应该将附加到原始对象的注释复制到HEAD,但是错误地收紧命令行参数验证导致之前错误地禁用了该功能。

    参见Doan Tran Cong Danh (congdanhqx-zz)commit d58deb9commit 8af69cf(2019 年 10 月 16 日)。
    (由 Junio C Hamano -- gitster -- 合并于 commit d4a98e7,2019 年 11 月 10 日)

    notes:将最小参数数修复为“copy”子命令

    签字人:Doan Tran Cong Danh

    builtin/notes.c::copy() 函数准备处理从命令行给出的一个或两个参数;当给出一个参数时,to-obj 默认为 HEAD

    bbb1b8a3 ("notes: check number of parameters to "git notes copy"", 2010-06-28, Git v1.7.1.1) 试图确保 "git notes copy" (与 no other argument) 不会通过检查参数的数量来取消引用NULL,但它错误地坚持我们需要两个参数,而不是一个或两个。

    这禁用了默认的 to-objHEAD

    改正它。

    所以现在,git notes copy -f HEAD~2 应该像 git notes copy -f HEAD~2 HEAD 一样工作,并正确地用 HEAD 之前的两次提交中的注释覆盖 HEAD 注释。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2013-02-20
      • 2011-11-05
      • 2011-03-11
      • 2014-07-01
      • 2013-01-08
      相关资源
      最近更新 更多