以下是该方案:
我已将PHP CMS更新为新版本。在这样做时,指南建议在更换旧文件之前保留旧文件。是的,这是愚蠢的,因为我可以使用Git旅行。我没有。
我做了什么:
邦。现在,git有一些非常大的提交,因为所有文件实际上都是重复的。我不需要这些步骤成为历史。我确实希望保持当前状态,所以:我希望保持文件结构与步骤7中的完全相同。我想转储第2步和第4步。
额外信息:步骤1和步骤7之间的文件差异最多只有1%或2%。但是由于我采取的步骤,Git认为所有这些都是新文件,我认为。
当我现在尝试将提交推送到远程时,推送的更改突然变为3.54 GB,高达几百MB。
答案 0 :(得分:2)
您想要实现的是一个互动的rebase。你将告诉Git“我想在commit x和commit z之间重写我的历史”。然后git将向您显示一个文本文件,就像您可以编辑的脚本,以指示您要对每个提交执行的操作(更新其消息,删除它,与以前合并等)。然后,当你完成后,保存文件,让魔法发生。
基本命令是:
git rebase -i
我强烈建议研究这个命令是如何工作的,并且可能在另一个存储库上执行一些测试以便很好地理解。当您管理此命令时,您将了解它的强大程度。这完全符合您当前的需求。
文档:https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
祝你好运;)注意:将一些提交“合并”为1的操作名为“Squashing Commits”