0

我刚刚应用了patch3 个文件,它们diff可以在这里看到:

stack.h stack.cmain.c

任务是将spatch分成不同commit的 s,如注释、许可证、重构等。

为此,我将使用git add -p

  1. 第一个大块头是许可证main.c,微不足道,我按y

  2. 第二块stack.c包含一大块许可证,然后是两块评论。我s分裂然后y n n

  3. 我将在剩下的时间里继续这样做git add -p

但是,它看起来像没有n应用!

为了证实我的怀疑,我会git add -p再次做一个新鲜的,这次我将使用e将成为this

git然后输出fatal: corrupt patch at line 50. 所以基本上我sn试图不上演某些大块头,但最终放弃了这些移除。

+-与(您必须用空格替换该行)不同,应该毫无问题地删除行,对吗?我究竟做错了什么?

4

1 回答 1

1

看起来你没有在每一步都遵循git add -p+ 。git commit说“不”n意味着剩余的更改尚未上演。您需要对要在每次提交中出现git add -pgit commit每种类型的更改进行重复。

但是,看起来没有 n 应用!

这是设计使然。这意味着您不希望在索引中使用它。所以这些变化没有上演。当您提交时,它们将不会成为该提交的一部分。您必须像上一次迭代一样重复该过程以获取/那些/。

一旦没有更多未完成的更改要提交,您就完成了git add -p+迭代。git commit

同样,您对 with 说“不”的大块头n将不会成为您与git commit.

您可能需要阅读 git 的暂存(或索引)如何工作。

于 2017-05-25T01:44:30.687 回答