我之前从未遇到过这个问题,也不知道这是怎么回事。我有一个非常大的目录,我误将其下载到我的git仓库中。我无意中做了git add .
所以大目录被添加到工作树中,当我尝试提交时,它不允许我,因为文件太大了。
然后我没有做git rm
并直接从文件系统中删除了该文件。下次我尝试提交时,它不允许我并且仍在抱怨目录(现在不再存在于文件系统中)太大了。
不从文件系统中删除文件也会将其从git工作树中删除吗?
如果有办法在不丢失更改的情况下撤消我的最后2次提交,然后将其重新推送到远程,那就太棒了。
答案 0 :(得分:2)
您需要在提交之前将其从索引中删除:
git rm --cached FOLDER_NAME
由于您已将其从文件系统中删除,因此该文件夹现在应该已经消失。
如果您在最近的提交中添加了该文件夹,则只需发出:
git commit --amend
git push -f REMOTE BRANCH_NAME
如果你在倒数第二次提交中添加了文件夹,事情会变得更加困难。我建议先创建本地仓库的备份。
请按照以下步骤操作:
# Rebase the second most recent commits
# -i will open an editor
git rebase -i HEAD~2
在编辑器中,用最后一次提交的行中的pick
替换edit
并保存文件。您现在可以更改该提交。问题:
git rm FOLDER_NAME
# This will open an editor again. You can leave the
# commit message unchanged. Simply save the file
git commit --amend
# Finish the rebase action
git rebase --continue
现在你应该完成并从该提交中删除该文件夹。你可以使用
推送git push REMOTE BRANCH_NAME