编辑:正如评论中指出的那样,此操作实际上并不是“还原”。更合适的描述是“以交互方式选择(或索引,如果未指定)和工作树之间的差异。”
如何在Git中恢复单个更改块?例如,在下面的例子中,从'git diff'只有一个文件,我想恢复第二个块(@@ -441,7 +442,7 @@),但不是第一个块(@@ -383, 7 +384,7 @@)。 这个例子就是一个例子。真实的情况是,如果我有大量的变化,而不仅仅是一行。这只是为了说明目的。
@@ -383,7 +384,7 @@
(...)
-foo foo foo
-fooza fooza fooza
+bar bar bar
+barza barza barza
(...)
@@ -441,7 +442,7 @@
(...)
-rpc_address: localhost
+rpc_address: "127.0.0.2"
(...)
答案 0 :(得分:5)
首先,如果文件被暂存,你就不能做多少。如果是这种情况,请将其取消:
git reset HEAD <file>
现在我们处于可以选择性地恢复/暂存文件的补丁的状态:
仅还原一些块(这些块将永远丢失!):
git checkout -p <file>
仅举办一些活动:
git add -p <file>
在随后的删除/添加对话框中,最有用的选项是s
(允许您进一步拆分一个块),y
(是)或{ {1}}(不)。