在推送后如何从分支中删除特定的提交?
假设我在名为v0.1
的远程存储库中有这样的历史(从最新到最旧),并且我想从765th4
中删除v0.1
,而不从其他分支中删除它。我该如何实现?
2fsf34
32t6e0
54r346
765th4
9r34gg
谢谢!
答案 0 :(得分:2)
这里最安全的选择是不实际上从您的765th4
分支中删除v0.1
提交,而是使用{{ revert 1}}。尝试以下命令:
git revert
如果在执行上述操作后运行# from v0.1 branch
git revert 765th4
,您会注意到对git log
分支进行了 new 提交,因此历史记录现在看起来像:
v0.1
这里abc123
2fsf34
32t6e0
54r346
765th4
9r34gg
是还原提交的SHA-1,它现在位于abc123
分支的HEAD上。该提交功能上会撤消v0.1
提交所引入的所有内容。这与完全删除765th4
提交具有相同的效果,而没有潜在的不良影响。
如果您确实想删除765th4
提交,则可以进行交互式重新配置。但是,通常不建议您将其推送到远程分支。原因是,重写历史记录可能会给您本人以外可能已经在使用765th4
分支的任何人带来问题。因此,请坚持使用v0.1
作为此处的简单和安全选项。