在开发过程中如果在编辑.gitignore时疏漏,导致本不应该上传至远程仓库的某个文件(夹)被提交,则可以使用如下方式解决
(只是从远程仓库中删除,本地文件不受影响、不会被删除)
1. 预览想要删除的文件
命令:git rm -r -n --cached 文件/文件夹名称
由于增加了参数-n
,此时只是预览涉及的文件,不会真正删除
$ git rm -r -n --cached .idearm '.idea/.gitignore'rm '.idea/DHEmbedding.iml'rm '.idea/deployment.xml'rm '.idea/inspectionProfiles/profiles_settings.xml'rm '.idea/misc.xml'rm '.idea/modules.xml'rm '.idea/other.xml'
2. 执行删除操作
命令:git rm -r --cached 文件/文件夹名称
$ git rm -r --cached .idearm '.idea/.gitignore'rm '.idea/DHEmbedding.iml'rm '.idea/deployment.xml'rm '.idea/inspectionProfiles/profiles_settings.xml'rm '.idea/misc.xml'rm '.idea/modules.xml'rm '.idea/other.xml'
删除后 git 的状态:
$ git statusOn branch masterYour branch is up to date with 'origin/master'.Changes to be committed:(use "git restore --staged <file>..." to unstage)deleted: .idea/.gitignoredeleted: .idea/DHEmbedding.imldeleted: .idea/deployment.xmldeleted: .idea/inspectionProfiles/profiles_settings.xmldeleted: .idea/misc.xmldeleted: .idea/modules.xmldeleted: .idea/other.xmlUntracked files:(use "git add <file>..." to include in what will be committed).idea/
删除对应的文件(夹)后记得编辑.gitignore,增加忽略项
3. 将删除操作提交至远程仓库
commit
git commit -m "提交信息"
push
git push