这很可能以前被问过,但我已经弄得我自己很困惑,试图找到解决方案,我认为只需发布具体问题我很好试图解决。Git - 从本地和远程回购中删除多个以前的提交
我想彻底删除已删除的提交(请参阅屏幕抓取),其他用户不改动。正如你所看到的,这些提交并不总是遵循对方。我已经将所有这些提交都推送到远程,所以我需要这个来反映那里。是否有可能做到这一点?
我对使用Git比较陌生,所以任何建议都会很棒。谢谢。
Local repo commits - SourceTree screen grab
这很可能以前被问过,但我已经弄得我自己很困惑,试图找到解决方案,我认为只需发布具体问题我很好试图解决。Git - 从本地和远程回购中删除多个以前的提交
我想彻底删除已删除的提交(请参阅屏幕抓取),其他用户不改动。正如你所看到的,这些提交并不总是遵循对方。我已经将所有这些提交都推送到远程,所以我需要这个来反映那里。是否有可能做到这一点?
我对使用Git比较陌生,所以任何建议都会很棒。谢谢。
Local repo commits - SourceTree screen grab
如果您已经被推这些提交,你不应该从历史中删除。这样做会导致其他人遇到问题时,他们拉你的变化。
相反,您可以使用revert命令创建新的提交并从先前的提交中删除更改。当您将此提交推送到远程存储库时,它将与删除提交具有相同的效果,但当其他人从该存储库中提取时不会导致问题。
要删除最近提交了在图像划掉,输入以下命令:
git revert 1e3e620
重复此任何其他承诺要恢复,然后按所有提交到远程存储库。
使用git rebase -i
删除提交,然后用--force
推送到远程。 (处理那些已经从遥远的地方拉下来的同事...)
我知道一个事实,即没有人从遥远的地方撤离。那么这种方法是最好的选择? – Aethyrion
没有人从远程拉动,所以现在使用rebase会是更好的选择吗? – Aethyrion
进行重新绑定会导致更清晰的历史记录 - 您不会看到原始提交或还原提交。在重新绑定后推送到远程存储库时,您将需要包含'--force'参数。 – Andy
考虑到没有其他人从回购协议中拉出来,我现在就要进行重新配售。但要记住你的解决方案。感谢您的帮助:) – Aethyrion