`

git忽略提交

    博客分类:
  • git
 
阅读更多

 

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

 

Git 忽略文件提交的方法

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

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

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

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

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

 

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 文件中,则相对于项目根目录
  • **匹配多级目录,可在开始,中间,结束
  • ?通用匹配单个字符
  • []通用匹配单个字符列表

常用匹配示例:

  • 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'

 

分享到:
评论

相关推荐

    idea-git忽略提交插件

    "idea-git忽略提交插件"正是为了解决这个问题而设计的,它让在IntelliJ IDEA(简称Idea)中创建和管理`.gitignore`文件变得更加便捷。 首先,我们来详细了解下`.gitignore`文件。这是一个文本文件,用于定义Git应...

    vs2022设置git忽略文件

    这时候,我们就需要设置Git忽略这些无须跟踪的文件,以保持代码仓库的整洁。本文将详细介绍如何在VS2022中设置Git忽略文件。 首先,我们需要了解`.gitignore`文件。这是一个文本文件,用于定义Git应该忽略的文件或...

    C# .net的git忽略文件

    C# .net的git忽略文件

    Git忽略提交的3种方法及Git忽略规则

    首先,Git忽略文件的方法主要有以下三种: 1. 在Git项目中定义.gitignore文件:在项目的根目录或者某个子目录中创建一个名为.gitignore的文件,在该文件中写入要忽略的文件和文件夹的匹配模式。这些规则对项目中的...

    git 忽略不需要提交代码 工具文件

    放在项目的根目录即可。git 提交代码时 有些不需要提交的文件进行忽略,例如 target 等等...。方便快捷 下载直接使用即可,安静 舒适 便捷

    git提交时候忽略某些文件

    git提交代码的时候,需要忽略掉某些不必要的文件,改配置文件粘贴到项目根目录,先提交该文件,然后下次提交的时候就会自动忽略指定的文件了。

    C# VisualStudio相关Git忽略文件 .gitignore

    VisualStudio开发C#程式码时,使用Git进行版本控制。每次提交都会有一些自动生成的文件不是我们所关心的,设置忽略文件,让Git只去比对核心文件以节省时间和资源

    git 忽略冗余文件文件

    如果需要忽略已追踪的文件,可以使用`git rm --cached <file>`命令将其从索引中移除,然后它们将不再出现在未来的提交中。 总之,`gitignore`文件是Git项目中不可或缺的部分,它帮助我们保持版本控制的整洁,避免...

    Git超级简明手册

    Mercurial和Git都是分布式版本控制系统,它们的特点是每个开发者本地都拥有完整的项目副本,分支管理是通过软链接或者Git中的提交树来实现,空间利用效率更高。 Git是Linus Torvalds为了协助Linux内核开发而创建的...

    iOS git 配置文件

    本文将详细讲解如何在iOS项目中配置Git,特别是针对大文件的处理以及忽略特定文件的设置。 首先,我们来看`.gitattributes`文件。这个文件是用来指定Git如何处理不同类型的文件。在iOS项目中,我们可能有一些较大的...

    学习git和gitbash使用的一些详细操作

    - 使用`.gitignore`文件来忽略不需要纳入Git管理的文件,通常在仓库的根目录下创建该文件。 - 分支合并冲突的解决:当合并分支时如果遇到冲突,需要手动打开冲突文件,解决冲突后提交。 - 使用GitBash可以在Windows...

    git 教材 progit

    此外,173软件下载.txt和173绿色软件.url可能是提供其他相关软件下载的信息,但它们不是Git学习的核心内容,可以按照需求参考或忽略。在学习过程中,如果遇到问题,可以查阅Git官方文档或在线社区(如Stack Overflow...

    VS2019的git常用过滤文件.gitignore

    VS2019的git常用过滤文件.gitignore

    git概述+常用命令解说

    Git 也提供了文档忽略机制,可以将工作目录中不希望接受 Git 管理的文档信息写到同一目录下的.gitignore 文件中。 Git 的基本命令包括:Git init、Git add、Git rm、Git commit 等。Git init 用于创建一个空的 Git...

    Git使用教程

    八、Git 忽略文件 * gitignore 文件:忽略特殊文件 * git rm --cached a.a:移除文件(只从暂存区中删除) * git rm -f a.a:强行移除修改后文件(从暂存区和工作区中删除) 九、Git 高级应用 * git submodule:...

    Git介绍与使用-培训专用课程PPT

    12. 忽略文件提交设置(`.gitignore`文件) 除了命令行工具,Git还有可视化界面工具,如SourceTree、TortoiseGit等,它们提供了友好的图形界面,方便开发者进行版本控制操作。 GitLab和GitHub都是基于Git的代码...

    git常用命令 嵌入式开发过程中git的简单使用

    - `git add .`: 将当前目录下的所有文件(不包括忽略的文件)添加到暂存区,准备提交。 - `git status`: 查看工作区和暂存区的状态,确认哪些文件被修改、新增或删除。 4. **提交更改** - `git commit -m "提交...

    git操作文档

    这里还特别提到.gitignore文件的使用,它用于指示Git忽略特定文件或目录,确保不被上传到仓库中。 在添加项目成员的环节,文档指导用户如何在GitLab的Dashboard中将项目成员添加为Developer或Master,并解释了不同...

    Git权威指南.txt

    - 提交者的信息可以通过 `git config user.name` 和 `git config user.email` 设置,确保提交信息的一致性和可追踪性。 - **4.5 命令别名的功能** - Git 支持定义命令别名,简化常用的命令操作。 - **4.6 备份...

Global site tag (gtag.js) - Google Analytics