用`git add -p`解开两行

vdb*_*oor 22 git git-add

我有一个包含以下更改的文件:

# Manual hunk edit mode -- see bottom for a quick guide
@@ -280,6 +281,7 @@
 if( foo )
 {
     bla();
-    test( true );
+    removeThis();
+    test( false );
 }
 else
Run Code Online (Sandbox Code Playgroud)

我怎样才能提交更改test(),并避免提交removeThis()?每次我尝试手动编辑大块时git告诉我它不适合干净利落.

P S*_*ved 26

如何仅为test()提交更改,并避免提交removeThis()?

这很简单.

  1. 进入add -i模式,然后5: [p]atch按选择pEnter.

  2. 输入数字选择文件,然后按Enter开始编辑补丁.

  3. e下来编辑您的大块头(您似乎通过这样做成功地到达了这里git add -p).

  4. removeThis() 完全删除该行,并+在开头添加符号.不要碰任何其他东西!生成的文本应该看起来像是您要提交的更改的补丁.

  5. 保存文件并退出编辑器.

补丁将适用.我刚检查过.再次检查 - 也许这是另一个不适用的大块头?

除此之外,您,附近的符号+/ -看起来很可疑.也许,你patchdiff程序在某种程度上是不同步的?尝试,从大块中删除s.

  • 谢谢!我还想出了我的编辑器(`notepad2`)将文件保存在LF行结尾中.将它们保存在LRLF结尾中可以解决最终问题. (2认同)
  • 帕维尔,你的答案的关键是"结果文本应该看起来像你正在做的改变的补丁." 容易记住,这是难以记住的部分,而不是"按e来编辑你的大块头".:) (2认同)