如何交互式地废弃修改(类似于 `git add -p`)

3
如何像git add -p对索引一样,从被跟踪的文件中丢弃修改?也就是说,我已经修改了一个被跟踪的文件,并且只想撤消文件的某些部分。
2个回答

6

可以使用以下方法之一

git checkout -p

要撤销跟踪文件的部分更改(见git checkout):

您可以使用git checkout -p选择性地从当前工作树中放弃编辑。

示例输出

$ git checkout -p
diff --git a/foo.txt b/foo.txt
index 98d8da3..dfd6895 100644
--- a/foo.txt
+++ b/foo.txt
@@ -1 +1 @@
-Hello world
+Hello world!
Discard this hunk from worktree [y,n,q,a,d,/,e,?]?

从文档中添加相关引用:“您可以使用git checkout -p选择性地放弃当前工作树中的编辑。” - user456814
你实际上可以编辑自己的答案,但是我已经按照你的要求添加了它 ;) - user456814

-1

要进行交互式取消暂存,请使用git add -i和已暂存提交的“还原”命令--界面与git add -p有些不同,但基本上可以反向完成相同的操作。

其他(不太方便)的可能性是git add -e并手动编辑补丁(删除+行并从-行中删除-)。


我所说的并不是取消暂存,而是还原文件的修改。 - Micha Wiedenmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接