git 清除版本库中的忽略文件

在这里可以讨论Git相关使用技术

版主: jvip_chen

回复
头像
jvip_chen
社区版主
社区版主
帖子: 183
注册时间: 2019年 1月 5日 13:36 星期六

git 清除版本库中的忽略文件

帖子 jvip_chen »

一、在已经提交的git代码管理里,删除不想提交的目录或文件

1.在 .gitignore 里面删除想要删除的文件*(没有就不用)(我以app/build 文件夹为例子)

代码: 全选

git add app/build 
git status #可以查看当前状态 
git commit -m”commit app/build” 
git push 
git rm -r - -cached app/build #删除目录 
git commit -m”rm app/build” 
git push 
最后在.gitignore里面添加忽略文件 app/build,
或者git checkout .gitignore

二、Git忽略规则及.gitignore规则不生效的解决办法

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:

代码: 全选

*.a        # 忽略所有 .a 结尾的文件 
!lib.a     # 但 lib.a 除外 
/TODO      # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO 
build/     # 忽略 build/ 目录下的所有文件 
doc/*.txt  # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt 
规则很简单,不做过多解释,但是有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:( 先把要忽略的文件加入.gitignore,再执行下列命令)

代码: 全选

git rm -r --cached . 
git add . 
git commit -m 'update .gitignore'

回复