我有一个分支,我在几个提交中对几个文件进行了一些更改。有一次,不久前,我开始对这些文件的一个子集做一些工作,并检查了一些更改。在那之后,我们决定将这些文件作为在另一个分支中完成的事情的一部分删除。因此,我想“取消”这些文件 - 它们与我在分支中所做的事情不再相关,并且我不想因此与其他已删除的文件造成任何合并冲突。
有什么方法可以更新进行这些更改的提交以使这些文件保持不变,并且在我的分支历史记录之外?
更具体地说:
在当前状态下考虑以下源代码树:
src/A.java
src/B.java
src/C.java
src/D.java
在历史记录中大约有 10 次左右的提交,进行了一次提交,以下列方式进行了更改:
M src/B.java
M src/C.java
A src/D.java
有没有办法可以C.java
从历史记录中删除更改,这样当您查看上面的提交时,它看起来像
M src/B.java
A src/D.java
如您所见,它会出现,以至于C.java
我的分支从未接触过。
我已经看过了git revert
,但是在不创建新提交的情况下无法找到一种方法来做到这一点,这会重置旧提交所做的更改。我知道我也可以通过简单地删除我的分支中的文件来避免合并冲突,但这感觉就像一个“丑陋”的解决方案,这一次有效,但下一次可能不行(如果另一个分支中的更改不是删除,怎么办?但是修改?),所以如果有更清洁的方法我想学习它。