一般来说,对于那些不需要加入git版本控制的文件/文件夹,我们会提前加入.gitignore
文件中进行屏蔽。但有时候我们会忘记这一步就先commit and push了,比如笔者今天就不小心把idea工程中的.idea
, out
文件夹都提交了。
那有没有恢复什么方法呢?其实也是有的,分为四步:
- 编写
.gitignore
文件 - 删除缓存区文件或文件夹,命令:
git rm -r --cached
- 将本次改动commit
- 将本次改动push到远程仓库
以在idea项目中从git repo删除.idea
文件夹为例,我们首先将其放入 .gitignore
文件中,然后依次执行如下命令:
git rm -r --cached .idea
git commit -m 'remove .idea from repo'
git push origin master
此时我们的缓存区和远程项目中就没有 .idea
文件夹啦!
PS: git rm
命令的-r
参数表示递归删除,主要是在删除文件夹时可以递归删除文件夹下面的文件或文件夹。
需要注意的是,此方法适用于我们需要删除缓存区或远程分支上的文件, 但本地项目又需要使用的情况。如果本地也用不到了,使用如下操作:
git rm file_path
git commit -m 'delete somefile'
git push
这样,我们的本地项目、缓存、远程repo中就将这些文件/文件夹都删除了。
Comments | NOTHING