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

在使用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使用方法文章请点击下方相关链接

(0)

相关推荐

  • MAC上IntelliJ IDEA的svn无法保存密码解决方案

    有的人的电脑在使用 IntelliJ IDEA 的svn 时候,无法保存密码, 输入密码时,勾选保存密码还是无效. 每次都的输入密码,一次浪费2秒钟,一天浪费多少时间啊. 如下操作: 然后. 这地方,我画了几个框框. 先是选择左边的2个都是第一个选项,然后在右边的搜索框搜索"svn". 如果,没有结果,不要着急,冷静点. 下面不还是有个"+"符号呢嘛,点击添加个就好. 可以参照着我的这个,你自己把地址和账号密码给配置一下,就OK啦. 上面是我的svn的配置,可以照着

  • Docker-compose一键部署gitlab中文版的方法步骤

    一.gitlab介绍 gitlab官方地址:https://about.gitlab.com/ GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.团队成员可以利用内置的简单聊天程序(Wall)进行交流.它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需

  • Webstorm2017上SVN插件安装的方法步骤

    安装Webstorm2017后,要使用svn版本控制,以下步骤介绍如何安装配置SVN 1.安装SVN 我这里使用的是TortoiseSVN-1.9.4.27285-x64-svn-1.9.4,本地下载地址://www.jb51.net/softs/200754.html TortoiseSVN中文版的安装配置与使用教程://www.jb51.net/softjc/567095.html 安装过程需要注意的是,默认安装没有选择"command line client tools",这里需

  • linux安装git的方法步骤

    1.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 安装环境 阿里云ECS CentOS 7.4 64位 2.使用shell安装git 请将下载的shell与下面代码保存到同一目录 cnl_function.sh #!/bin/bash source ./

  • 用Docker安装Gitlab的方法步骤

    Gitlab简介 GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码.传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境.不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,如果有同学学过Java的话应该记得初学Java时配置环境变量的恐惧吧?因此更好的办法就是使用现在非常流行的Docker. 那么Docker又是个什么东西呢?这是一个虚拟化的运行工具,主要目的是将软件和整个运行环境打包起来,让我们

  • Docker-compose部署gitlab的方法步骤

    Docker-compose部署gitlab 1.安装Docker 安装必要工具 复制代码 代码如下: [root@vm_10_14_centos ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 添加Docker-ce镜像源并安装 [root@vm_10_14_centos ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/li

  • Jenkins与SVN持续集成的示例代码

    概述 Jenkins是一个Java语言编写的开源的持续集成工具,它的前身为Hudson,使用它可以进行项目的自动编译.测试与发布,这极大的减轻了团队之间的繁琐重复的工作,从而加快了整个项目的交付进度. 官网下载Jenkins&SVN&eclipse,版本号没要求,建议使用最新稳定版本 登录Jenkins:http://localhost:8080 登录SVN:http://localhost:3343/csvn 默认admin账号登录SVN,登录后,点击版本库->创建版本库 4.打开

  • 版本管理工具Rational ClearCase的介绍

    Rational ClearCase是软件配置管理SCM工具的一种,它可以用来对代码或者其他软件开发资产进行版本控制.对于超过上百或者上千团队开发者的大型项目据说也有很好的支持,同时对于大的二进制文件,文件个数很多,整体仓库容量很大的情况也能进行支持,另外对于目录也能进行版本的控制. 前世今生 基本信息 术语 学习ClearCase可能要学习一下它的一些术语,比如ClearCase支持两种模型: UCM(Unified Change Management)和Base ClearCase两种模型.

  • Git原理和常用操作

    由于gitlab的免费私有仓库的优势,所以在公司使用gitlab会多一些,对于gitlab来说,注册需要翻墙,而登录不需要. 关于git是做什么的,这里就不多说了.相信大家知道,这里就带大家,一小时掌握git原理,学会git操作. Git 工作流程 在gitlab上一般每个人或每个项目或者每个bug都会有自己独立的分支.分支不影响主分支master. 一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交

  • gitlab实践教程使用git config进行相关的配置操作

    这篇文章根据实际碰到的一个问题来介绍一下git配置相关的内容. 命令: git config 使用git config进行相关的配置操作 配置文件 git在整体上,配置文件分为三级,结合优先级相关信息如下 简单来说,优先级别离仓库越近越高,所以 项目级别 > 用户级别 > 系统级别.相同的设定同时出现时,优先级别高的会覆盖上层的配置. 配置检查 使用git config 不同的参数可以对如上三个不同的级别进行相关设定的检查 因为相同的设定有可能会产生覆盖,使用git config -l会列出g

随机推荐