git删除已经push的远程文件或文件夹

git删除已经push的远程文件或文件夹

在使用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]

你可能感兴趣的:(git删除已经push的远程文件或文件夹)