我希望通过唯一的提交制作一个交互式补丁。我想使用类似的输出
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)
不,git hunk 的标准工具是使用行(或附近一组已更改的行)。然而,git 所做的只是在三种状态中的每一种状态下拍摄文件的快照;因此,如果您有权访问所做的更改,您可以轻松地重播该内容。首先,执行其中一项更改(然后进行提交),然后重播第二项更改(然后进行提交),依此类推。
不过,逐字逐句地执行此操作可能不值得 - 您最终会得到许多没有真正独立相关性的提交。