我有一个远程git存储库,有近1000个重提交,即:
C1 -> C2 -> C3 -> ... -> C949 -> C950 -> ... -> C1000
最近,我发现在提交C950中,我在repo中添加了大型二进制对象。我使用git filter-branch --index-filter
命令删除了本地存储库中的文件。现在我的本地存储库看起来像这样:
C1 -> C2 -> C3 -> ... -> C949 -> C1001 -> ... -> C1051
我知道我可以在远程存储库上撤消我的提交,然后推送更改。但是对于我的大型提交,我想确保将更改推送到远程存储库的最有效方法。
更新1:到目前为止,很明显我应该在我的远程存储库中找到push-force
。但重点是我的远程仓库不允许nonFastForward合并。有没有其他方法可以解决这个问题?
答案 0 :(得分:2)
目前您正在尝试将一些已更改的提交(C1001 - > ... - > C1051)重写为您之前已经推送它们的回购(即提交C950 - > .. - > C1000)所以,你必须强行推动。
关于远程仓库上的FastForward配置,您应该可以直接访问远程仓库以更改配置。
答案 1 :(得分:1)
如果git没有使用某些大型对象,它会自动删除它们,并且不会与任何遥控器共享它们。
使用以下方法推送使用过的参考文献:
git push origin master
(根据需要用你的遥控器和你的分支替换origin和master。)
它只会推送master中包含的对象和提交,这不应该是你的大提交的情况。