我只是看着git提交日志,而且我一直在推动两位作者。所以我有重复。
如何删除所有提交的历史记录?我花了一个小时的时间来查找信息,但我不能git push --force
(被拒绝,非快进)
git log
:
答案 0 :(得分:0)
您无法删除提交,但可以{J}到您的起点。
答案 1 :(得分:0)
您可以尝试以下命令,但要注意后果(Git v2.6.4):
git checkout <ref you want to keep from>
git checkout -b my_new_master
git push origin +my_new_master:master
然后,Git垃圾收集器应该销毁旧主服务器的所有提交。 From the docs:
git push origin + dev:master
使用dev分支更新源存储库的主分支,允许非快进更新。这可能会在源存储库中悬挂未引用的提交。请考虑以下情况:无法快进:
o---o---o---A---B origin/master \ X---Y---Z dev
上述命令会将原始存储库更改为
A---B (unnamed branch) / o---o---o---X---Y---Z master
提交A和B将不再属于具有符号名称的分支,因此无法访问。因此,这些提交将通过源存储库上的git gc命令删除。
或者,可以得到相同的结果分解步骤,特别是对于旧版本的Git。我已经在一些虚拟存储库上完成了它,但是它很长,而且我相信没有意义,因为它有很多理由不鼓励:这样做就可以打破其他存储库。但是上面的命令应该足够好,因为你正在使用个人或低变化的存储库。