最近的uniapp项目踩了个坑,就是建完项目,提交代码后,运行发布微信小程序,生成了unpackage里的build文件,这个时候提交总是提交一堆编译后的文件,甚至造成冲突。即使在.gitignore文件中写入忽略unpackage目录也不管用。

目录

Git 忽略规则优先级

Git 忽略规则匹配语法

原因:

解决办法:

具体操作:

举一反三:

以上就是今天的分享,欢迎关注我,点赞评论!~


Git 忽略规则优先级

难道是文件书写规则不正确?先学习一下.gitignore的优先级:

  1. 从命令行中读取可用的忽略规则
  2. 当前目录定义的规则
  3. 父级目录定义的规则,依次递推
  4. $GIT_DIR/info/exclude 文件中定义的规则
  5. core.excludesfile中定义的全局规则

Git 忽略规则匹配语法

难道是匹配语法不正确吗?来吧,恶补一下Git的语法:

  1. 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
  2. 开头的文件标识注释,可以使用反斜杠进行转义
  3. ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
  4.  / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
  5. / 开始的模式匹配项目跟目录
  6. 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
  7. ** 匹配多级目录,可在开始,中间,结束
  8. ? 通用匹配单个字符
  9. * 通用匹配零个或多个字符
  10.  [] 通用匹配单个字符列表

原因:

最终,补坑完成。是由于该文件已经被提交过,处于被跟踪状态,所有即使加入.gitignore文件也无效!

解决办法:

  1. 清除缓存
  2. add .
  3. commit
  4. push

具体操作:

遇到上述坑,我们正确的操作是:

 git rm -r --cached  unpackage    
 git add .
 git commit -m "update .gitignore"
 git push origin dev

举一反三:

当其他文件被提交过,需要不再跟踪文件状态,不需要提交修改时,需要先清除git缓存,使文件不处于被跟踪状态,再在.gitignore文件中加入该文件即可。

// 清除缓存
 git rm -r --cached  不需要跟踪的文件名     

// add . 
 git add .

// commit
 git commit -m "update .gitignore"

//push
 git push origin 远程分支名

以上就是今天的分享,欢迎关注我,点赞评论!~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐