git把某个文件去除版本控制

【20180415更新】 
谢谢@jessicway 同学的提醒。我之前没考虑只需要删除服务器上已提交的文件,但是本地不想删除的情况。 
我们先看看 git rm 命令的说明 
这里写图片描述 
可以看到其实加上 --cached 参数就可以实现只去除版本控制而不删除本地文件的功能了。即 git rm --cached file

首先说说 gitignore 文件的作用:

该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件

因此,有时候我们一开始在上传项目的时候把某些不必要的文件也添加进了git的版本控制。此时 gitignore 对这些文件就不起作用了。因此我们要先从 git 里面把这些文件 untracked ,然后修改 gitignore ,最后提交。

具体操作:

  • 从 Git 的数据库中删除对于该文件的追踪;
git rm -r --cached loggers  # -r 是允许递归删除,当要删除的是文件夹的时候有用
  • 1

注意:这里 --cached 的意思是只去除版本控制而不删除本地文件,如果不写的话会把本地文件也删掉。所以要不要加 --cached 参数就看自己需要了。

  • 修改 .gitignore, 把对应的规则写入 .gitignore,让忽略真正生效;

  • 提交+推送。就是 add commit push 啦。

PS: 以上命令的执行可能需要在命令行中运行. 即如果你用的IDE自带Git, 你需要先关闭你的IDE, 然后再命令行中执行以上命令后, 再去打开你的IDE.

猜你喜欢

转载自my.oschina.net/yurenzhen/blog/1800790