Git - 从本地和远程仓库中删除多个先前的提交

Git - Removing multiple previous commits from both local and remote repo

以前很可能有人问过这个问题,但我在寻找解决方案时感到很困惑,我认为最好只 post 我正在尝试解决的具体问题。

我想完全删除划掉的提交(见屏幕截图),让其他人保持不变。如您所见,这些提交并不总是相互跟随。我已经将所有这些提交推送到远程,所以我也需要它来反映。可以这样做吗?

我对使用 Git 还比较陌生,所以任何建议都很好。谢谢

Local repo commits - SourceTree screen grab

如果您已经推送了这些提交,则不应将它们从历史记录中删除。这样做会导致其他人在提取您的更改时出现问题。

相反,您可以使用 revert 命令创建新的提交并删除先前提交的更改。当您将此提交推送到远程存储库时,它将与删除提交具有相同的效果,但是当其他人从该存储库中拉取时不会造成问题。

要删除图像中被划掉的最新提交,请输入以下命令:

git revert 1e3e620

对您要还原的任何其他提交重复此操作,然后将所有这些提交推送到远程存储库。

使用 git rebase -i 删除提交,然后使用 --force 推送到远程。 (并处理已经从远程拉出的心烦意乱的同事......)