我正在本地编写一些计算代码,并将其与Github同步。我最近写了一些新代码,并在文件夹内的一些大型数据文件中进行了测试。在添加并提交整个文件夹并尝试推送它之前,我没有注意文件的大小。但是,指示文件大小太大的错误无法推送。
我对git还是很陌生,所以我想只是从文件夹中删除生成的数据文件,但只是意识到提交已经记录了超大数据文件。我环顾四周,发现像git revert命令这样的选项。但是好像我git恢复后,我更新过的所有代码都回到了先前的提交。我只是想重新提交而不包含超大数据文件,以便我可以成功进行推送。有谁可以帮助我吗?
答案 0 :(得分:2)
您可以简单地告诉git从索引中删除文件,然后修改您的最后一次提交。
git rm --cached path/to/your/file
git commit --amend
使用git rm --cached
可以从索引中删除文件,但是将其保留在文件系统中,而使用git commit --amend
可以修改上一次提交,包括这些更改。您进行的每项更改都会纳入其中。您甚至有机会修改提交消息。
答案 1 :(得分:1)
尝试运行:
1 ---> 100
2 ---> 200
3 ---> 300
4 ---> 400
5 ---> 500
1 ---> 100
2 ---> 200
3 ---> 400
4 ---> 500
它将删除您的最新提交,但将更改保留在工作树中,以便您可以创建新的提交但可以修改其中的内容。
答案 2 :(得分:1)
git reset --soft HEAD~1
git reset path/to/file
git commit
说明
git reset -soft HEAD~1
将重置您的上一次提交(HEAD~1
是对上一次提交的引用),但请保留更改的阶段性,我们可以在git reset path/to/file
之前取消对文件的暂存。