在使用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忽略提交插件"正是为了解决这个问题而设计的,它让在IntelliJ IDEA(简称Idea)中创建和管理`.gitignore`文件变得更加便捷。 首先,我们来详细了解下`.gitignore`文件。这是一个文本文件,用于定义Git应...
这时候,我们就需要设置Git忽略这些无须跟踪的文件,以保持代码仓库的整洁。本文将详细介绍如何在VS2022中设置Git忽略文件。 首先,我们需要了解`.gitignore`文件。这是一个文本文件,用于定义Git应该忽略的文件或...
C# .net的git忽略文件
首先,Git忽略文件的方法主要有以下三种: 1. 在Git项目中定义.gitignore文件:在项目的根目录或者某个子目录中创建一个名为.gitignore的文件,在该文件中写入要忽略的文件和文件夹的匹配模式。这些规则对项目中的...
放在项目的根目录即可。git 提交代码时 有些不需要提交的文件进行忽略,例如 target 等等...。方便快捷 下载直接使用即可,安静 舒适 便捷
git提交代码的时候,需要忽略掉某些不必要的文件,改配置文件粘贴到项目根目录,先提交该文件,然后下次提交的时候就会自动忽略指定的文件了。
VisualStudio开发C#程式码时,使用Git进行版本控制。每次提交都会有一些自动生成的文件不是我们所关心的,设置忽略文件,让Git只去比对核心文件以节省时间和资源
如果需要忽略已追踪的文件,可以使用`git rm --cached <file>`命令将其从索引中移除,然后它们将不再出现在未来的提交中。 总之,`gitignore`文件是Git项目中不可或缺的部分,它帮助我们保持版本控制的整洁,避免...
Mercurial和Git都是分布式版本控制系统,它们的特点是每个开发者本地都拥有完整的项目副本,分支管理是通过软链接或者Git中的提交树来实现,空间利用效率更高。 Git是Linus Torvalds为了协助Linux内核开发而创建的...
本文将详细讲解如何在iOS项目中配置Git,特别是针对大文件的处理以及忽略特定文件的设置。 首先,我们来看`.gitattributes`文件。这个文件是用来指定Git如何处理不同类型的文件。在iOS项目中,我们可能有一些较大的...
- 使用`.gitignore`文件来忽略不需要纳入Git管理的文件,通常在仓库的根目录下创建该文件。 - 分支合并冲突的解决:当合并分支时如果遇到冲突,需要手动打开冲突文件,解决冲突后提交。 - 使用GitBash可以在Windows...
此外,173软件下载.txt和173绿色软件.url可能是提供其他相关软件下载的信息,但它们不是Git学习的核心内容,可以按照需求参考或忽略。在学习过程中,如果遇到问题,可以查阅Git官方文档或在线社区(如Stack Overflow...
VS2019的git常用过滤文件.gitignore
Git 也提供了文档忽略机制,可以将工作目录中不希望接受 Git 管理的文档信息写到同一目录下的.gitignore 文件中。 Git 的基本命令包括:Git init、Git add、Git rm、Git commit 等。Git init 用于创建一个空的 Git...
八、Git 忽略文件 * gitignore 文件:忽略特殊文件 * git rm --cached a.a:移除文件(只从暂存区中删除) * git rm -f a.a:强行移除修改后文件(从暂存区和工作区中删除) 九、Git 高级应用 * git submodule:...
12. 忽略文件提交设置(`.gitignore`文件) 除了命令行工具,Git还有可视化界面工具,如SourceTree、TortoiseGit等,它们提供了友好的图形界面,方便开发者进行版本控制操作。 GitLab和GitHub都是基于Git的代码...
- `git add .`: 将当前目录下的所有文件(不包括忽略的文件)添加到暂存区,准备提交。 - `git status`: 查看工作区和暂存区的状态,确认哪些文件被修改、新增或删除。 4. **提交更改** - `git commit -m "提交...
这里还特别提到.gitignore文件的使用,它用于指示Git忽略特定文件或目录,确保不被上传到仓库中。 在添加项目成员的环节,文档指导用户如何在GitLab的Dashboard中将项目成员添加为Developer或Master,并解释了不同...
- 提交者的信息可以通过 `git config user.name` 和 `git config user.email` 设置,确保提交信息的一致性和可追踪性。 - **4.5 命令别名的功能** - Git 支持定义命令别名,简化常用的命令操作。 - **4.6 备份...