在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。

Git 忽略文件提交的方法

有三种方法可以实现忽略Git中不想提交的文件。

1、在Git项目中定义 .gitignore 文件

这种方式通过在项目的某个文件夹下定义 .gitignore 文件,在该文件中定义相应的忽略规则,来管理当前文件夹下的文件的Git提交行为。

.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则。

在 .gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则。如:

*.log

*.temp

/vendor2\

2、在Git项目的设置中指定排除文件

这种方式只是临时指定该项目的行为,需要编辑当前项目下的 .git/info/exclude 文件,然后将需要忽略提交的文件写入其中。

需要注意的是,这种方式指定的忽略文件的根目录是项目根目录。

3、定义Git全局的 .gitignore 文件

除了可以在项目中定义 .gitignore 文件外,还可以设置全局的 git .gitignore 文件来管理所有Git项目的行为。这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。

这种方式也需要创建相应的 .gitignore 文件,可以放在任意位置。然后在使用以下命令配置Git:

git config --global core.excludesfile ~/.gitignore

Git忽略规则

Git忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

从命令行中读取可用的忽略规则

当前目录定义的规则

父级目录定义的规则,依次递推

$GIT_DIR/info/exclude 文件中定义的规则

core.excludesfile中定义的全局规则

Git 忽略规则匹配语法

.gitignore文件中的忽略规则

在 .gitignore 文件中,每一行的忽略规则的语法如下:

空格不匹配任意文件,可作为分隔符,可用反斜杠转义

#开头的文件标识注释,可以使用反斜杠进行转义

!开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义

/结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件

/开始的模式匹配项目跟目录

如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录

**匹配多级目录,可在开始,中间,结束

?通用匹配单个字符

[]通用匹配单个字符列表

常用匹配示例:

bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件

/bin: 忽略根目录下的bin文件

/*.c: 忽略 cat.c,不忽略 build/cat.c

debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj

**/foo: 忽略/foo, a/foo, a/b/foo等

a/**/b: 忽略a/b, a/x/b, a/x/y/b等

!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件

*.log: 忽略所有 .log 文件

config.php: 忽略当前路径的 config.php 文件

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

以上既是Git忽略提交文件的3种方法及Git忽略规则,关于Git使用方法文章请点击下方相关链接

git 命令行忽略提交_Git忽略提交的3种方法及Git忽略规则相关推荐

  1. git命令行新建分支,并推送至远程分支(git 新建远程分支)

    git命令行新建分支,并推送至远程分支(git 新建远程分支) 1.查看当前分支: $ git branch 2.查看所有分支,包含远程分支 : $ git branch -a 3.新建分支: $ g ...

  2. linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...

  3. git命令行切换到某一个提交版本的分支

    通常,我们需要在命令行下切换 分支,一般而言,我们将远程代码克隆(git clone http://xxx.com/project)到本地之后,切换分支使用git checkout -b branch ...

  4. linux删除目录或文件命令行,Linux删除目录下的文件的10种方法小结

    看到了一遍文章,便突发奇想的想起Linux中删除目录下的所有文件的方法:整理了几个,如有不足,还望读者不吝赐教! 删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文 ...

  5. 【Linux】在命令行中查看Linux内核版本的几种方法

    如何知道自己的系统使用哪个Linux内核版本?以下是在Linux终端中检查内核版本的几种方法. 如何找到Linux内核版本 1.使用uname命令查找Linux内核 uname是用于获取系统信息的Li ...

  6. linux 命令行随机数,Linux系统产生随机数的6种方法

    Linux系统产生随机数的6种方法 1.通过系统环境变量($RANDOM)产生随机数 [root@localhost ~]# echo $RANDOM 3849 [root@localhost ~]# ...

  7. Git命令行 回退到指定历史版本

    1.git 命令行查询版本号 查询历次提交记录,得到版本号 git log 比如,要回退到的版本号 为ef582da9e1dbcf34f939fdb0fa2db897ae4887b1 2.git 命令 ...

  8. Git使用命令行拉取项目、提交代码

    一.拉取项目 1.打开GitHub,选择项目,复制项目地址 2.在电脑上新建一个项目文件夹,在文件夹里点击右键-->Git Bash Here,打开Git命令行 3.输入git clone + ...

  9. Git 命令行提交代码详细操作

    Git 命令行提交代码操作(安装git后,鼠标右键打开Git Bash) 1.查看本地git绑定的用户名和邮箱: git config user.name git config user.email ...

最新文章

  1. 调研|我们是否能够实现并应该发展强人工智能?
  2. matlab中句柄图性对像的设置
  3. C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)
  4. python 统计单词个数---从文件读取版本---不去重
  5. 大数据对人们的好处_大数据有什么作用和优势
  6. python中StringIO和BytesIO
  7. java common-lang_common-lang3工具类-使用手册
  8. Cisco思科交换机路由器命令快速入门
  9. ftp服务器文件夹设置,ftp服务器可设置的文件夹
  10. win10--ubuntu 16.04桌面共享
  11. 三大跳槽传闻,信了你就输了!
  12. 2007年度中文博客百条经典语录
  13. SpringSecurity实现数据库认证
  14. 关于SQLの大题练习
  15. 六派巨量转移技术概述
  16. 企业电子邮件系统全局地址簿管理及使用方法介绍
  17. 中国空气质量在线监测分析平台-js混淆的坑
  18. failed to load steamui.dll怎么解决?
  19. Power Query-具体查看函数的方法
  20. 士兵队列训练问题(队列--先进先出)

热门文章

  1. SequoiaDB 巨杉数据库SDK驱动开发
  2. win11怎么连接共享打印机进行打印
  3. CSS中appearance属性的使用方法
  4. hbase与solr的架构整合
  5. 转载:高德地图加载不出来,有高德的logo,但地图一片空白
  6. 安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决
  7. JS实现文本框不可编辑
  8. 专科生能不能考研?专科报考注意事项一览!
  9. 解决uploadify对象不支持此属性或方法
  10. 最优化方法 ——— 一阶优化