因为git
是为源代码设计的,所以它的默认diff
算法将行视为最小不可分割单位.
我正在尝试编辑一些包含在第80列自动换行的降价文件.添加一个句子可以使段落的其余部分标记为已更改.
有没有办法让Git使用更适合文本的diff算法?我需要一个将单词或句子视为不可分割的单位而不是线条的单位?
Mat*_*off 21
你可以试试git diff --word-diff
.
$ git diff --word-diff
diff --git a/test.txt b/test.txt
index 54585bb..a8cd97e 100644
--- a/test.txt
+++ b/test.txt
@@ -1,7 +1,7 @@
Because git is designed for source code, its diff algorithms {+are bibbity +}
{+bobbity boo+} treat a line as the minimum indivisible unit. I am trying to edit
some markdown files that are word wrapped at column 80. Adding a sentence can
cause the rest of the paragraph to be marked as changed.
Is there a way to have Git use a diff algorithm more suited to text? One that
treats words or sentences as indivisible units rather then lines?
No newline at end of file
Run Code Online (Sandbox Code Playgroud)
man*_*lds 11
也许你在找 word-diff
--word-diff [=
<mode>
]显示单词diff,使用
<mode>
分隔更改的单词.默认情况下,单词由空格分隔; 请参阅下面的--word-diff-regex.将<mode>
默认为平纹,并且必须是以下之一:颜色
仅使用颜色突出显示更改的单词.意味着 - 颜色.
川
将单词显示为[-removed-]和{added}.如果它们出现在输入中,则不会尝试转义分隔符,因此输出可能不明确.
瓷
使用特殊的基于行的格式用于脚本使用.添加/删除/未更改的运行以通常的统一diff格式打印,从行开头的+/ - /
字符开始并延伸到行的末尾.输入中的换行符由自己的行上的波浪号〜表示.
没有
再次禁用字差异.
请注意,尽管第一个模式的名称,但如果启用了颜色,则使用颜色突出显示所有模式中已更改的部分.
http://git-scm.com/docs/git-diff
以下是自定义此示例的示例(来自此问题).默认情况下,--word-diff假定一个单词是一个非空白字符串.以下命令将考虑包含以下内容之一的单词:
命令:
git diff --color-words --word-diff-regex='[A-z0-9_]+|[^[:space:]]'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3145 次 |
最近记录: |