撤消已推送的旧提交,仅保留部分更改

时间:2019-03-28 16:40:38

标签: git

我想进行一次旧提交。
我想保留的部分旧提交,我想删除的部分。
删除我不需要的提交部分后,我想回到master分支的头。

这可能吗?

2 个答案:

答案 0 :(得分:0)

免责声明:从您的描述中我无法完全说出您想做什么。以下是我可能提出的两种最可能的解释。告诉我们更多信息,我会编辑。


如果您想修改过去历史记录中的提交,这是一个很大且非常不便的过程,涉及从修改后的提交中重写所有历史记录。当您与任何人共享该回购协议时,甚至是一个人根本不轻松的操作时,这都是极度成问题的。让我们知道是否是这种情况,但我将假设第二种情况。


如果您想使用特定提交带来的更改(的一部分),请根据您的特定需求进行调整(此处,不包括部分更改)后,可以:< / p>

git cherry-pick -n <commitHash>

它不会在当前分支的顶端创建一个提交,它将在工作树中引入对该提交所做的更改,您将有机会添加/删除/修改您想要的任何内容,并然后提交。

答案 1 :(得分:0)

git revert还原了我的旧提交中的所有更改。 只是您提交了我的更改,它没有删除更改。从那里,我可以删除不需要的更改。因此,还原是部分还原。

git恢复