详解Git.gitignore开发必备建议收藏

目录
  • 一、为什么使用 .gitignore ?
  • 二、使用规则
    • 2.1 注释
    • 2.2 忽略文件
      • (1)忽略文件和目录
      • (2)仅忽略文件
      • 2.3 忽略目录
      • 2.4 使用通配符
      • 2.5 反向操作
      • 2.6 双星号
      • 2.7 其它规则
  • 三、总结

在使用 git 管理项目过程中,.gitignore 文件是必备的文件,下面来详细说一说!

一、为什么使用 .gitignore ?

在一些项目中,我们不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传,比如:一些依赖文件(node_modules下的依赖)、bin 目录下的文件、测试文件等。一方面将一些依赖、测试文件都上传到远程传输量很大,另一方面,一些文件对于你这边是可用的,在另一个人那可能就不可用了,比如:本地配置文件。

为了解决上述问题,git 引入了 .gitignore 文件,使用该文件来选择性的上传文件。

二、使用规则

2.1 注释

注释使用 # 开头,后面跟注释内容。如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件
out
*.exe
linuxy@linuxy:~/linuxGit$

上例中,以 # 开头的便是注释。

2.2 忽略文件

(1)忽略文件和目录

例如:folderName : 表示忽略 folderName 文件和 folderName 目录,会自动搜索多级目录,比如:*/*/folderName。

来看一个简单的例子,本地仓库的目录结构如下所示:

linuxy@linuxy:~/linuxGit$ tree
.
├── folder
│   └── file1
└── src
    ├── folder
    └── utils
        └── folder

3 directories, 3 files
linuxy@linuxy:~/linuxGit$

其中,.gitignore 文件内容如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件

folder
linuxy@linuxy:~/linuxGit$ 

故在本地仓库中,同名的 folder 目录、src/folder 文件、src/utils/folder 文件都会被忽略,即:不会被提交到远程仓库中。

(2)仅忽略文件

模式如下所示:

folderName

!folderName/

仅忽略 folderName 文件,而不忽略 folderName 目录,其中,感叹号“!”表示反向操作。

来看一个简单的例子,本地仓库的目录结构如下所示:

linuxy@linuxy:~/linuxGit$ tree
.
├── folder
│   └── file1
└── src
    ├── folder
    └── utils
        └── folder

3 directories, 3 files
linuxy@linuxy:~/linuxGit$

其中,.gitignore 文件内容如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件

folder
!folder/
linuxy@linuxy:~/linuxGit$

故在本地仓库中,src/folder 文件、src/utils/folder 文件会被忽略,而同名的 folder 目录不会被忽略。

2.3 忽略目录

模式如下所示:

folderName/

忽略 folderName 目录,包括:

(1)当前目录下的foldernName,例如:folderName/;

(2)多级目录下的 folderName,例如:*/*/folderName/;

来看一个简单的例子,本地仓库的目录结构如下所示:

linuxy@linuxy:~/linuxGit$ tree
.
├── folder
│   └── file1
└── src
    ├── folder
    └── utils
        └── folder

3 directories, 3 files
linuxy@linuxy:~/linuxGit$

其中,.gitignore 文件内容如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件

folder/
linuxy@linuxy:~/linuxGit$

故在本地仓库中,folder 目录会被忽略,而同名的 src/folder 文件和 src/utils/folder 文件不会被忽略。

2.4 使用通配符

常用的通配符有:

(1)星号“*” :匹配多个字符;

(2)问号“?”:匹配除 ‘/'外的任意一个字符;

(3)方括号“[xxxx]”:匹配多个列表中的字符;

来看一个简单的例子,本地仓库的目录结构如下所示:

linuxy@linuxy:~/linuxGit$ tree
.
├── src
│   ├── add.c
│   ├── add.i
│   └── add.o
├── test.c
├── test.i
└── test.o

1 directory, 6 files
linuxy@linuxy:~/linuxGit$

其中,.gitignore 文件内容如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件

*.[io]
linuxy@linuxy:~/linuxGit$

故在本地仓库中,test.i文件、test.o文件、src/add.o文件、src/add.i文件会被忽略,而 test.c文件和add.c 文件不会被忽略。注意:这里忽略的匹配模式是多级目录的。

2.5 反向操作

模式如下所示:

!匹配模式 

表示之前忽略的匹配模式再次包含在跟踪内容里。

例如在仅忽略文件时提到的模式:

folderName

!folderName/

表示仅忽略 folderName 文件,而不忽略 folderName 目录。

2.6 双星号

斜杠后紧跟两个连续的星号"**",表示多级目录。

来看一个简单的例子,.gitignore文件的内容如下所示:

linuxy@linuxy:~/linuxGit$ cat .gitignore
# this is .gitignore file.
# 以下是忽略的文件

src/**/file
linuxy@linuxy:~/linuxGit$

2.7 其它规则

(1)空行不匹配任何文件;

(2)git 跟踪文件,而不是目录;

(3)在 .gitignore 文件中,每行表示一种模式;

(4)如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。

(5).gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。

三、总结

在使用 git 过程中,掌握 .gitignore 的使用很重要,可以减少不必要的文件上传到远程。

🎈 本文博主原创,创作不易,如果对您有帮助,欢迎小伙伴们点赞👍、收藏⭐、留言💬

到此这篇关于详解Git.gitignore开发必备建议收藏的文章就介绍到这了,更多相关详解Git.gitignore内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • git bash配置ssh 登录 Linux的方法

    1.首先在 Linux 服务器上生成公钥和私钥文件,默认的存放目录在~/.ssh下. ssh-keygen 可以将密码留空,这样之后就可以免密码登录. 2.将私钥文件拷贝到本机. scp root@192.168.1.168:/root/.ssh/id_rsa ~/.ssh 这里最好将私钥文件放在 ~/.ssh 目录下,不然在使用 ssh 登录时,需要使用 -i 来指定私钥文件. 3.公钥文件需要添加到服务器的 ~/.ssh/authorized_keys 文件当中. cat id_rsa.pu

  • Git的配置及文件传输方法图文详解

    首先要下载安装git相关软件,在将git配置到idea中. 1.下载相关插件 2.配置git安装包中的gie.exe路径 3.配置git安装包中的bash.exe路径 4.登录git账户 5.添加git本地仓库 6.配置Git本地仓库路径 7.Java代码上传 先选中要上传的项目如下图操作 8.克隆Java程序 到此这篇关于Git的配置及文件传输方法图文详解的文章就介绍到这了,更多相关git文件传输内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • IDEA初次配置并导入gite码云的方法

    用过很长一段时间github,这网络问题是真的难,就是连不上,索性把项目改到gitee上,于是乎就写一篇,记录下. 一.开场配置 安装git软件 idea中配置gitee 分享项目到gitee 二.具体操作 一)下载git软件,并安装,并配置到idea中 二) 安装gitee插件 安装后,重启idea,在version中就会出现Gitee 三) 配置Gitee账号 你可能会碰到这个提示,这时候你需要去gitee上配置一个关联邮箱 配置一个主邮箱 ok账号配置搞定 四) share项目到gitee

  • 详解Android Studio中Git的配置及协同开发

    一. Android Stutio配置git setting–>Version Control–>Git–>Path to Git executable中选择git.exe的位置,这个Stutio一般会默认配置好: 配置完路径后点击后面的Test按钮,出现下面提示框则表示配置成功: 二. 将项目分享到github 1. 设置github账号密码 打开Setting–>Version Control–>GitHub,填写完账号密码后,点击Test测试,如果连接成功会弹出如下提示

  • pycharm配置git(图文教程)

    下载git客户端 FileàDefault Settingà Version Controlà Git Path to Git executable 填写git客户端的git.exe路径,点击OK,如图下 Git Repository URL的地址填写 其形式如:http://gitlab.AAAA.com/redredava/semantic.git,以 .git结束的链接: Parent Directory路径是本地保存路径,点击Clone 比较不同修改的变化,如下图所示: 展示结果: 双击

  • Git ssh 配置及使用方法

    这篇教程是在电脑上已经安装好git的前提之上的,要进行以下配置,请先确保你的电脑已经安装好git.以下配置步骤是在git bash里面进行配置的,可以通过 右键> git bash here 打开 在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地. 这两种方式的主要区别在于:使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和pu

  • Git客户端图文详解 如何安装配置GitHub操作流程攻略

    Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上; Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代

  • 详解Git.gitignore开发必备建议收藏

    目录 一.为什么使用 .gitignore ? 二.使用规则 2.1 注释 2.2 忽略文件 (1)忽略文件和目录 (2)仅忽略文件 2.3 忽略目录 2.4 使用通配符 2.5 反向操作 2.6 双星号 2.7 其它规则 三.总结 在使用 git 管理项目过程中,.gitignore 文件是必备的文件,下面来详细说一说! 一.为什么使用 .gitignore ? 在一些项目中,我们不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传,比如:一些依赖文件(node_modules下的依赖

  • 详解git中配置的.gitignore不生效的解决办法

    详解git中配置的.gitignore不生效的解决办法 前言: 通常我们希望放进仓库的代码保持纯净,即不要包含项目开发工具生成的文件,或者项目编译后的临时文件.但是,当我们使用git status查看工作区状态的时候,总会提示一些文件未被track.于是,我们想让git帮助我们忽略这些文件,不再提醒. 庆幸的是,git已经考虑到这点了.我们可以在项目的根目录下建立一个.gitignore的文件,该文件用来配置哪些文件或者目录不被track的.规则很简单,就在该文件中,写下你不想被track的文件

  • 详解git reset 加不加 --hard的区别

    通常我们提交代码一般都是 git add ,git commit -m,   git push的这么个流程.添加到暂存区,提交到git库生成版本号,push到远程仓库以供他人可以使用.这是一个完整的且非常顺利的流程.但是往往实际开发中并不是这么顺利,总会出现这样或那样的问题. git reset就是当我们提交了错误的内容后进行回退使用的命令. git reset 版本号,就是回退到该版本号上. 通常我们使用 git reset HEAD就是回退到当前版本.git reset HEAD^回退到上一

  • 详解git基本操作和指令

    基本操作 一.基本操作命令 创建进入空文件夹 右键 -> 点击 Git Bash Here 启动命令行(MAC 在当前文件夹打开终端) git init 仓库初始化 创建一个初始化文件 index.html git add index.html 将文件加入到暂存区 git commit -m '注释' 提交到仓库 m 是 message 单词的缩写 二..git 目录 hooks 目录包含客户端或服务端的钩子脚本,在特定操作下自动执行. info 包含一个全局性排除文件,可以配置文件忽略 log

  • 详解Linux 下开发微信小程序安装开发工具

    详解Linux 下开发微信小程序安装开发工具 1. git clone https://github.com/yuan1994/wechat_web_devtools 然后创建一个文件夹 mkdir /opt/tencent/ 移动文件 mv ./wechat_web_devtools /opt/tencent 修改用户组 chown -R root:root /opt/tencent/wechat_web_devtools 启动测试工具 /opt/tencent/wechat_web_devt

  • visual studio code 配置C++开发环境的教程详解 (windows 开发环境)

    0 引言 最近帮GF(不幸变成ex了)配置C++开发环境,一开始想给她装个visual studio13完事,但是一想到自己安装以及使用时的诸多麻烦,就有点退却,觉得没有这个必要.正好了解到vscode大行其道,决定按照官网指示配置一版.由于本人非计算机科班出身,对编译原理了解不多,在配置环境的时候遇到了一些麻烦,参照网上的诸多教程,最后发现还是官网比较靠谱,所以结合自己配置的教训,写个帖子,希望能够帮到大家. 1 下载安装vscode 下载网址链接如下. https://code.visual

  • 详解git的基本使用方法

    什么是git? git是目前世界上最先进的分布式版本控制系统. git与SVN的最主要区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中央服务器.集中式版本控制系统必须要联网才能工作,如果在局域网中,有足够的宽带,运行速度够快,而在互联网环境下,网速慢通常会导致服务难以进行. git是分布式版本控制系统,没有中央服务器,每个人的电脑是一个完整的版

  • 详解git的分支与合并的两种方法

    如何将两个分支合并到一起.就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线. 1.   git merge 咱们先来看一下第一种方法 -- git merge 在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点.翻译成自然语言相当于:"我要把这两个父节点本身及它们所有的祖先都包含进来."下面具体解释. # 创建新分支 bugFix git branch bugFix # 切换到该分支 git checkout bugFix # 提交一次 git c

  • 详解git commit --amend 用法

    有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录:或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend. git功能十分强大,接下来我将讲解一下git commit --amend命令的用法~ git log之后,可以看到你之前提交过的git历史: ​ 接下来,在bash里输入wq退出log状态,执行: $ git commit --amend 这时bash里会出现以下内容: ​ 其中,second

  • 详解git submodule使用以及注意事项

    一.背景 在平时的软件开发过程中常常会有这样的场景,自己负责的某个模块会依赖其他模块或者第三方的library.这时你自己的模块是一个独立的代码仓库,你想要实现这样一种功能,当你从你的模块的代码仓库里把代码拉到本地来的时候,能自动的将你依赖的模块或第三方库都拉到指定的目录当中去. 当然要实现这个功能的方法有很多,比如使用repo之类的工具,又比如如果你使用的是svn作为版本管理工具,那么你可以使用svn的external机制来引用第三方的project. 这里要说的是使用git作为版本管理工具的

随机推荐