大型还原git提交是否被推送



我在repo中添加了一些大文件,然后推送失败(提交1(。我决定我可以在没有远程大文件的情况下生活,所以我在本地repo中恢复了提交,这显示为提交2,它恢复了提交1。现在,任何推送都仍然失败。

  1. 推送是否会因为两次提交都在历史记录中而尝试仍上载文件?

  2. 在提交1之前提交的git reset --hard会解决问题吗?例如,推送会忽略提交1和2吗?

  1. 是。2.是的

这样做的原因是,如果其他用户签出了commit 1,那么他们的本地文件系统上就会有这个大文件,所以它必须存在于历史记录中。

重置为之前的提交可以解决这个问题,或者,如果你已经进行了进一步的提交,并且不想在之后重新选择它们,你可以只进行交互式的rebase,并将提交1和2压缩在一起。在您的情况下,重置可能是最简单的,但如果恢复提交没有按顺序进行,比如说,它是提交5,那么重新基本可能会更干净。在交互式重定基准期间,您可以将提交5重新排序为在提交1之后立即执行,并将其压缩为提交1(或将1和5都压缩到上一次提交中(。和Git中的惯例一样,有很多方法可以剥这只猫的皮。

最新更新