Git忽略规则:
在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如果没有这个文件,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则
例如:
# 此为注释 – 将被 Git 忽略
*.txt # 忽略所有 .txt 结尾的文件
/TODO/ # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO/
build/ # 忽略 build/ 目录下的所有文件
doc/*.go # 会忽略 doc/notes.go但不包括 doc/server/arch.txt
忽略某个文件下除了某个文件的写法
/TODO/
/TODO/ *.go
解释:忽略TODO目录下除了.go 文件外的所有文件
.gitignore规则不生效的解决办法
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
//以上只适用于 还没有版本控制的文件了。如果是clone 下来继续开发的话,问题就有点棘手了。解决方法如下
有的时候,不小心提交了一个配置文件config.php,每次在本地开发测试之后,都需要更改配置文件。相当麻烦。
使用
git update-index --assume-unchanged /path/file 可以忽略这个修改。从而不用提交到库里面。
字面意思很好理解
assume 假设
unchanged 未更改。
如果想恢复该文件,可以用
git update-index --no-assume-unchanged /path/file 来恢复跟踪
总结
命令执行顺序
1、添加需要忽略的文件 到.gitignore 文件中
2、git update-index --assume-unchanged /path/file
3、git rm -r --cached .
4、git add .
5、git commit -m 'update .gitignore'