使用新添加的.gitignore条目推送我的git repo似乎写了比它应该更多的对象

时间:2017-04-27 13:58:01

标签: git github

我正在尝试清理我的一个回购,因此提交更容易,我决定忽略几个文件夹,将我的仓库大小从~100mb减少到~6mb。

我是git rm --cached -r。和git添加。然后git commit -m“commit”但是当我git push origin master时它压缩与之前相同数量的对象,并说写对象:x%(X / 12954),其中12000+远远高于实际的数量对象?所以我有点困惑。

我希望这个屏幕截图有助于解释它 https://gyazo.com/39e1d6710f30f32e34d73c85a1f37481

感谢您的任何反馈或帮助

1 个答案:

答案 0 :(得分:0)

此时删除文件为时已晚,因为它们已存在于回购历史中。您需要从历史记录中删除这些文件。

您可以使用以下命令从git历史记录中删除文件。

但请注意:此命令将重写您的git历史记录。在您完全满意之前,请先复印一份您的回购,而不是原件。

[paths]

myfolder/unwantedfile.txt可以是myfolder/unwantedfile.txt myfolder/anotherfile.txt anotherfolder/oldfile.txt之类的单一路径,也可以是使用git rev-list --objects --all | sort -k 2 | cut -f 2 -d\ | uniq 等空格分隔的多条路径。

如果您不确定文件的路径,可以使用以下命令。

id    starting_point      ending_point
A        2525                 6565
B        5656                 8989
A        1234                 5656
A        4562                 6245
B        6496                 9999
B        1122                 2211

这将列出曾经提交给您的仓库的每个文件。

我希望这会有所帮助。