根据我的知识,我确实以有组织的方式管理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
在您的情况下,原始提交和(让我说)还原提交都将成为项目历史的一部分.
如果需要,可以稍后恢复还原提交,即如果需要再次应用原始提交.
有关详细信息,请参阅链接的文档.