如何将git note移动到另一个提交?

时间:2017-01-03 21:00:49

标签: git

我错误地提到了错误的提交。有没有一种简单的方法可以将它整体移动到另一个提交中?

我希望有一种方法可以在一个不同的提交中将一个音符重新学习,但是最简单的方法就是很高兴知道。我怀疑最简单的选择是使用桌面剪贴板复制粘贴文本。

2 个答案:

答案 0 :(得分: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

P.S。修改提交时不会自动迁移注释。

答案 1 :(得分:0)

请注意,在Git 2.25(2020年第一季度)中,“ git notes更强大:

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

请参见commit d58deb9commit 8af69cfDoan Tran Cong Danh (congdanhqx-zz)(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(“注:检查要复制的参数“ git notes”,2010-06-28,Git v1.7.1.1)试图确保“ git notes”复制”(带有其他 no 个参数)不会通过检查参数数量来解除对NULL的引用,但是错误地坚持认为我们需要两个参数,而不是一个或两个。

     

这将默认的to-obj设置为HEAD

     

更正它。

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