我将一个 212MB 的文件添加到我的文件夹中并提交并尝试推送它。 Git 告诉我文件太大所以我无法推送它。我删除了该文件,但当我尝试推送代码时它仍然显示。
我的实际步骤是:
-
I did git add .
-
Then git commit -m "New css"
-
Then git push origin development
-
然后运行上面的命令花了很长时间。最后显示“path/to/file/file.mp4 为 212MB,太大。推送失败”。
-
然后我手动删除了该文件。
-
再次尝试推送,同样的问题。
其他 stackoverflow 答案告诉我要使用git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
我只是想理解这意味着什么。这会影响我的整个存储库还是仅影响上述文件?如果我已经手动删除了该文件,会发生什么情况?所以该文件路径不存在。
例如,由于我尝试推送到开发分支,所以我做了git push origin development
。这失败了,所以假设我尝试删除的文件名为Testing.mp4,代码应该是:
git filter-branch --tree-filter 'rm -rf public/uploads/videos/testing.mp4' HEAD
我对吗?再说一次,这只会删除视频而不会删除其他内容?
从文件系统中删除文件并不一定意味着将其从 git 中删除,如果它之前已添加到索引中(git add path/to/file
),但只记录一次删除操作。
根据您之前所做的操作,git 可能会尝试按顺序推送您的各种操作:首先添加文件(由于文件大小而失败),然后删除它。
要真正停止跟踪此文件,您可以尝试将其从索引中删除:git rm --cached path/to/file
以后记得永远git rm
有问题的文件而不是简单地删除它,git rm
将删除该文件并同时将其从索引中删除。
manojlds 谎言的一个很好的解释here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)