Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 是否可以在“注释”中添加注释;吉特差异;?_Git_Version Control - Fatal编程技术网

Git 是否可以在“注释”中添加注释;吉特差异;?

Git 是否可以在“注释”中添加注释;吉特差异;?,git,version-control,Git,Version Control,我试图总结代码库的“旧”和“新”状态之间的区别 我可以只做“git日志”,但遗憾的是,提交消息并不总是足够的 我可以做“git diff”,但我想看看对我看到的差异的一些解释,或者至少提交散列以备将来使用 我可以对更改的文件先执行“git diff--stat”,然后执行“git annotate”,但我不知道如何要求annotate只显示特定提交后的更改 理想情况下,我希望得到“git diff”的输出,其中所有的“+”和“-”行将被注释为关于上次引入这些更改的提交的信息;理想情况下,使用

我试图总结代码库的“旧”和“新”状态之间的区别

  • 我可以只做“git日志”,但遗憾的是,提交消息并不总是足够的
  • 我可以做“git diff”,但我想看看对我看到的差异的一些解释,或者至少提交散列以备将来使用
  • 我可以对更改的文件先执行“git diff--stat”,然后执行“git annotate”,但我不知道如何要求annotate只显示特定提交后的更改
理想情况下,我希望得到“git diff”的输出,其中所有的“+”和“-”行将被注释为关于上次引入这些更改的提交的信息;理想情况下,使用git格式(例如哈希、作者和日期)

如何做到这一点?

请注意,您可以要求:

  • 从某个提交中注释 请参阅“”:
    git-cfe25b6d^--src/options.cpp
  • 或从某个日期开始注释:
    git责备-c--since=3.5周--foo
注之二:我更喜欢git-c

此命令与git之间的唯一区别在于,它们使用的输出格式略有不同,并且此命令的存在只是为了向后兼容,以支持现有脚本,并为来自其他SCM系统的人员提供更熟悉的命令名


我不知道是否有一种简单的方法可以获得带注释的
git-diff
结果(比如“错误的diff”)


您可以使用git log-p的
--full diff
选项来获取提交消息+diff.

您可以编写一个小脚本,它可以执行以下操作

git blame before > before
git blame after > after
diff -u before after
:)


参见
man1git
re:
git\u EXTERNAL\u DIFF

我认为这在目前是不容易做到的。但是,如果您想查看包含错误信息的文件提交差异的上下文,可以执行以下操作:

$ sha1=$(git rev-parse --short HEAD); git blame $sha1 -- filename |grep -C5 --color ^$sha1
git-bull
将像往常一样对文件进行注释,
grep
将为该提交中引入的每个更改显示五行上下文。

似乎相关

在“作者”和“提交”等错误信息旁边显示差异

我使用了一个工具(基于python)来完成这项工作。。。即使算上删除的行做了一些类似于反向注释的事情(反向注释并不完全是必需的,因为它会显示行所在的上一个修订,它实际上不会指向删除行所在的修订,因此它实际上需要更多的分析才能弄清楚)。我希望它适合你的需要


是的,我看到了这个选项,但它仍然输出完整的文件(只是在指定的提交之前未触及的行用该确切的提交标记,而不是更早的提交),我仍然需要执行git diff--stat来知道要注释哪些文件。我试着编写一些模型,但需要考虑的情况太多了。然而,在我看来,这应该是一条路,我发现git annotate在与未提交的更改进行比较时比git Dull工作得更好。git Gurn更改了未提交更改的列对齐方式,因此每一行都是diff.YMMV。此解决方案的问题在于,Gurn中包含了行号。所以,当你区分这两种指责时,偏移行号会导致太多的错误。唯一一次这不会成为问题的是,如果只更改了更改行的位置(没有添加或删除)。我想你可以做一些其他的魔法来移除行号。。。