如果要从历史记录中完全删除它,可以执行以下操作:
git rebase -i <commit to remove>^
这将打开带有提交列表的默认编辑器(通常是 vi),其中包含要首先删除的提交。从列表中删除它,保存并退出。如果没有您要删除的提交,这不应该重新设置您的分支。
“更安全”的方法是保留历史记录,这样您就可以证明此功能曾经存在,并且被有意删除。只需使用git revert <commit to remove>. 这将创建一个额外的补丁来撤销你想要删除的提交。主要优点是您可以编辑提交消息,并解释删除此功能的原因。
小智 8
如果您想恢复merge提交,您必须执行以下操作。
git log以查找合并提交的 ID。您还会发现与合并关联的多个父 ID(参见下图)。记下以黄色显示的合并提交 ID。父 ID 是写在下一行中的Merge: parent1 parent2。现在...
短篇故事:
git revert <merge commit id> -m 1即可打开vi控制台以输入提交消息。写入,保存,退出,完成!很长的故事:
切换到进行合并的分支。就我而言,它是test分支,我正在尝试feature/analytics-v3从中删除分支。
git revert是恢复任何提交的命令。但是在恢复提交时有一个令人讨厌的技巧merge。需要输入-mflag,否则会失败。从这里开始,您需要决定是否要恢复您的分支并使其看起来就像是在parent1或parent2通过:
git revert <merge commit id> -m 1(恢复为parent2)
git revert <merge commit id> -m 2(恢复为parent1)
你可以 git log 这些父母来弄清楚你想要走哪条路,这就是所有混乱的根源。