在使用git提交项目时,有时候会误提交一下文件,比如:.iml,.project,*.settings,.idea/*等文件,有时候这些不需要提交的文件可以加入到.gitignore,在提交的时候可以忽略这些文件,但是有时候我们忘记,就会出现误提交一些文件,这时就需要我们删除误提交的文件,下面是使用git命令来删除已经push的误提交的文件:
注意:该方法适用于我们需要删除暂存区
或分支
上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
比如:我们就拿删除 integration-engine-stream.iml 作为例子
1.预览暂存区我们需要删除的文件或文件夹(此步骤可以预览我们要删除的文件或文件夹是否是我们要删除的,有没有或多或少删除)
git rm -r -n --cached 文件/文件夹
$ git add . #虽然有些IDE在代码更新后会自动add,但是还是最好手动add一下,以防万一
$ git rm -r -n --cached integration-engine-stream.iml
rm 'data-integration-engine-stream/integration-engine-stream.iml'
使用 -n 参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。由此我们看到只有要删除的文件 integration-engine-stream.iml
git rm -r 参数为递归删除,主要是在删除文件夹时可以递归删除文件夹下面的文件或文件夹
2.确认无误后删除暂存区文件或文件夹,只需去掉 -n 参数
git rm -r --cached 文件/文件夹
$ git add . #虽然有些IDE在代码更新后会自动add,但是还是最好手动add一下,以防万一
$ git rm -r --cached integration-engine-stream.iml
rm 'data-integration-engine-stream/integration-engine-stream.iml'
3.将本次删除暂存区的改动提交
$ git commit -m "delete remote integration-engine-stream.iml"
[Ft_di_carrefour 1afcb47a] delete remote integration-engine-stream.iml
1 file changed, 250 deletions(-)
delete mode 100644 data-integration-engine-stream/integration-engine-stream.iml
4.将本次删除push到远程仓库
git push [remote] [branch]
另外:当我们需要删除暂存区
或分支
上的文件, 同时工作区也不需要这个文件了, 可以如下步骤:
1.先在工作区删除想要删除的文件
2.git add . #虽然有些IDE在代码更新后会自动add,但是还是最好手动add一下,以防万一
3.git commit -m 'delete somefile'
4.git push [remote] [branch]
或者这样也可以,但是不如上边的方式方便快捷
1.git add . #虽然有些IDE在代码更新后会自动add,但是还是最好手动add一下,以防万一
2.git rm -r [文件/文件夹] #删除工作区文件,并且将这次删除放入暂存区,-r为删除文件夹,删除文件时可以不加
3.git commit -m 'delete somefile'
4.git push [remote] [branch]