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

在项目根目录下面 添加 .gitignore文件

文件中每一行表示需要忽略的文件的正则表达式。

.gitignore文件过滤有两种模式,开放模式和保守模式

1. 开放模式负责设置过滤哪些文件和文件夹

例如: /target/ 表示项目根目录下的target文件夹里面所有的内容都会被过滤,不被GIT 跟踪

.classpath 表示项目根目录下的.classpath文件会被过滤,不被GIT跟踪

2. 保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。

例如:

!/target/*.h 表示target文件夹目录下所有的.h文件将被跟踪

如果你不清楚GIT会跟踪哪些文件,你可以先用git status命令查看一下

$git status  
# On branch master  
# Untracked files:  
#   (use "git add <file>..." to include in what will be committed)  
#  
#    .metadata/  
#    gitignore  

像这样的话,就是.metadata文件夹和gitignore被跟踪。

另外别忘记了在.gitignore文件中加入一行.gitignore,否则的话.gitignore将会被传到GIT服务器上

规则写法
1. 在已忽略文件夹中不忽略指定文件夹

/node_modules/*

!/node_modules/layer/

2. 在已忽略文件夹中不忽略指定文件

/node_modules/*

!/node_modules/layer/layer.js

【注意项】注意写法 要忽略的文件夹一定要结尾 /* ,否则不忽略规则将无法生效

3. 其他规则写法 (附)
  以斜杠“/”开头表示目录;
  以星号“*”通配多个字符;
  以问号“?”通配单个字符
  以方括号“[]”包含单个字符的匹配列表;
  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

1、忽略文件

*.bak               # 忽略所有扩展名为.bak的文件

!keep.bak      # 但keep.bak文件除外(不会被忽略)

temp/test.txt  # 忽略temp目录下的test.txt文件

temp/*.txt       # 忽略temp目录下所有扩展名为.txt的文件

2、忽略目录

temp/       # 忽略temp目录下的所有目录和文件

temp/*/    # 忽略temp目录下的所有目录,但不会忽略该目录下的文件

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

# 此为注释 – 将被 Git 忽略
*.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状态),然后再提交:

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

注意:
  不要误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。

参考


【git】git提交忽略不必要的文件或文件夹
git提交忽略文件或文件夹

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛歌依旧fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值