git – 删除特定的提交,但之后保留所有提交

根据我的知识,我确实以有组织的方式管理git.我提交了每个具体的更改,以便我可以随时恢复一点功能.在这个过程中,我在大约10天前添加了一个功能(commit#74fd458),在那里我添加了一个二进制文件并对3个跟踪文件进行了更改.

之后我做了至少15次提交.

dfs4334 – new commit 15
2yu44m6 – new commit 14

47jc063 – new commit 1
74fd458 – Target Commit (seems unwanted now)
560dfsf – old commit 1
lfg956d – old commit 2

现在我遇到了一种情况,即不需要特定的提交(读取’feature’).事情很简单,打开一个提交可视化工具并删除那个特定提交中生成的那些特定行,删除那时添加的二进制文件,然后就完成了.但是,你知道它很乱.

问:有什么方法可以保留我之后所做的所有更改,但删除,还原或从分支中选择一个特定的提交?

PS.由于方案可以随时更改,因此可以在以后添加该特定功能.因此,我不想完全从版本控制中删除该功能,我只是将这些内容放在外面,但要将它们放在某处,以便我可以随时将它们合并,如果有必要的话.

最佳答案

Is there any way I can keep all the changes I made afterward, but remove, or revert, or pick a specific commit out of the branch?

git revert可能就是你要找的东西.
从文档:

Revert some existing commits

Given one or more existing commits, revert the changes that the related patches introduce, and record some new commits that record them

在您的情况下,原始提交和(让我说)还原提交都将成为项目历史的一部分.
如果需要,可以稍后恢复还原提交,即如果需要再次应用原始提交.

有关详细信息,请参阅链接的文档.

点赞