git临时补丁:厚块小于一行

neb*_*ebi 6 git patch staging

我希望通过唯一的提交制作一个交互式补丁。我想使用类似的输出

git diff --word-diff=porcelain [file]
Run Code Online (Sandbox Code Playgroud)

进行交互式修补。命令

git add --edit
Run Code Online (Sandbox Code Playgroud)

只提出至少一线的帅哥?

目的:我有一个文本文件补丁,我想像在“ LibreOffice”中那样接受或拒绝更改。


例:

一行中的文本文件:

echo "Thiis is a sentence with one wrong word. This is a clean sentence. Thhe laast one iss alwaays morre dificult" > text.txt
Run Code Online (Sandbox Code Playgroud)

承诺

git add text.txt
git commit -m "one"
Run Code Online (Sandbox Code Playgroud)

修改文件

echo "This is a sentence with one wrong word. This is a clean sentence. The last one is always more difficult" > text.txt

git add -e
Run Code Online (Sandbox Code Playgroud)

应该自动切成3块

"Thiis" > "This"
"Thhe laast" > "The last"
"iss alwaays morre dificult"> "is always more difficult"
Run Code Online (Sandbox Code Playgroud)

我可以得到

--- a/text.txt
+++ b/text.txt
@@ -1 +1 @@
-Thiis is a sentence with one wrong word. This is a clean sentence. Thhe laast one iss alwaays morre dificult
+This is a sentence with one wrong word. This is a clean sentence. The last one is always more difficult
Run Code Online (Sandbox Code Playgroud)

注意:最好“不要在索引中引入令人困惑的更改”(#EDITING PATCHES)

AlB*_*lue 3

不,git hunk 的标准工具是使用行(或附近一组已更改的行)。然而,git 所做的只是在三种状态中的每一种状态下拍摄文件的快照;因此,如果您有权访问所做的更改,您可以轻松地重播该内容。首先,执行其中一项更改(然后进行提交),然后重播第二项更改(然后进行提交),依此类推。

不过,逐字逐句地执行此操作可能不值得 - 您最终会得到许多没有真正独立相关性的提交。