gpt4 book ai didi

git - 注释代码段时如何改进 git diff 输出

转载 作者:行者123 更新时间:2023-12-05 05:37:44 28 4
gpt4 key购买 nike

我经常发现自己对需要很长时间才能运行的文件进行小的更改。工作流程是这样的:

<small edit to foo>
git add foo
<comment out huge swathe of foo which doesn't need testing>
<test change>
git restore foo

效果很好。唯一的问题是,我喜欢在 git restore 之前检查注释是唯一会丢失的更改。正是在这里,我对 git 以及我配置 git 使用的大多数其他 diff 工具感到失望。

我希望像这样查看索引中的代码块之间的差异:

#
# JIRA-001: Do a thing
#

foo <<-EOF
foo1
EOF

#
# JIRA-002: Do another thing
#

foo <<-EOF
foo2
EOF

和一个看起来像这样的工作副本:

##
## JIRA-001: Do a thing
##
#
#foo <<-EOF
# foo1
#EOF
#
##
## JIRA-002: Do another thing
##
#
#foo <<-EOF
# foo2
#EOF

将很容易看出区别只是哈希值已添加到一系列行之前。但这通常不容易说出来,因为差异以多个大块的删除和添加行的形式呈现,有时以这样一种方式交织在一起,以至于让我不清楚是否发现了额外的变化。

除了运行 git diff 我还尝试过 `git diff --word-diff-regex=.结果稍好一些,但在我看来仍然不理想。我还尝试了 --diff-algorithm 的所有不同值,但没有任何区别。

谁能建议一种查看这些差异的方法来避免这个问题?

附上 git diffgit diff --word-diff-regex=. 的部分输出以进行比较。

enter image description here

enter image description here

最佳答案

为了避免猖獗的双关语,使用一个更容易区分的标记并告诉这个词 diff:

$ git diff --word-diff-regex='#.|.' test test2
diff --git a/test b/test2
index 11c83b7..d92fc45 100644
--- a/test
+++ b/test2
@@ -1,15 +1,15 @@
{+#x+}#
{+#x+}# JIRA-001: Do a thing
{+#x+}#
{+#x+}
{+#x+}foo <<-EOF
{+#x+} foo1
{+#x+}EOF
{+#x+}
{+#x+}#
{+#x+}# JIRA-002: Do another thing
{+#x+}#
{+#x+}
{+#x+}foo <<-EOF
{+#x+} foo2
{+#x+}EOF

关于git - 注释代码段时如何改进 git diff 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73069485/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com