在使用git提交項目時,有時候會誤提交一下文件,比如:*.iml,*.project,*.settings,.idea/*等文件,有時候這些不需要提交的文件可以加入到.gitignore,在提交的時候可以忽略這些文件,但是有時候我們忘記,就會出現誤提交一些文件,這時就需要我們刪除誤提交的文件,下面是使用git命令來刪除已經push的誤提交的文件:
注意:改方法適用於我們需要刪除暫存區
或分支
上的文件, 但本地又需要使用, 只是不希望這個文件被版本控制
比如:我們就拿刪除 integration-engine-stream.iml 作為例子
1.預覽暫存區我們需要刪除的文件或文件夾(此步驟可以預覽我們要刪除的文件或文件夾是否是我們要刪除的,有沒有或多或少刪除)
git rm -r -n --cached 文件/文件夾
$ 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 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'
$ 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
另外:當我們需要刪除暫存區
或分支
上的文件, 同時工作區也不需要這個文件了, 可以使用如下命令:
git rm file_path git commit -m 'delete somefile' git push
這樣本地文件也會刪除