如何在git中重新设置单个补丁添加交互模式?

时间:2018-01-25 01:51:57

标签: git

我经常在补丁模式下使用git add --interactive来尝试不同的工作和非工作事务来创建多个提交(关于工作事项的非工作和有效代码的评论)。为了创建这些提交,我会多次交互地浏览补丁集,并且有一些我想要删除的补丁,即既不添加当前提交也不添加到以下提交之一。如果我必须花费很多时间来完成补丁,我总是必须决定将补丁保留下来,而不是让它消失一次就像我对git reset --hard HEAD -- [path]的文件一样。< / p>

有没有办法实现这种优化?

示例:

> git add --interactive --patch
diff --git a/file b/file
index 3652a25..296f68d 100644
--- a/file
+++ b/file
@@ -1,5 +1,7 @@
 abc

-def
+123

 ghi
+
+456
Stage this hunk [y,n,q,a,d,/,s,e,?]? s
Split into 2 hunks.
@@ -1,5 +1,5 @@
 abc

-def
+123

 ghi
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n
@@ -4,2 +4,4 @@

 ghi
+
+456

在此,我不希望在def的任何进一步调用中看到123替换为git add --interactive,并且能够添加,跳过和拆分所有其他补丁为预期

1 个答案:

答案 0 :(得分:1)

使用git checkout -p [file]

git add -p非常相似,它将以交互模式运行,如果您想保留原样或者还原它,请询问[file]上的每个差异块。

相关问题