Git 中的.gitignore文件的作用及配置

2023-11-18


前言

在使用Git的时候,有时候会在Git的工作区目录中产生一个.gitignore文件,该篇来简单介绍一下它的作用以及该如何进行配置。

一、.gitignore文件是什么?

有的时候在IDE中使用Git拉取了GitHub上的开源代码的时候总会看到工作目录中有一堆的文件和目录,其中就有一个.gitignore文件,对于初学者来说不影响使用就不会去着重理会它,但这可能就在日后的使用中留下了隐患。

例如,有些时候,你需要在Git的工作目录中加入某些需要的文件,例如一些新增的配置文件,等。但是很多配置文件中会有一些重要的私密信息,你不想将其进行提交。所以当你每次在使用git status查看状态时,总会报出Untracked files ...这行信息,让你总是要去查看一下是否有什么遗漏。这在使用Git中会带来很不好的体验。此时就需要用到.gitignore这个配置文件了。

Git考虑到这个问题,所以在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 这也就是它的作用啦~。忽略一些特殊不需要或者不想add的文件。

二、如何配置.gitignore文件?

当然一般情况下不需要我们自己从头写编写.gitignore文件,在GitHub中有一个仓库已经为我们总结了各种情况下.gitignore文件的配置方式,我们只需要按需组合,并加以修改就可以使用了。所有配置文件可以直接在线浏览:github/gitignore

这里一般我们配置忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;

  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;

  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

    windows系统忽略文件示例:

    # Windows thumbnail cache files
    Thumbs.db
    Thumbs.db:encryptable
    ehthumbs.db
    ehthumbs_vista.db
    
    # Dump file
    *.stackdump
    
    # Folder config file
    [Dd]esktop.ini
    
    # Recycle Bin used on file shares
    $RECYCLE.BIN/
    
    # Windows Installer files
    *.cab
    *.msi
    *.msix
    *.msm
    *.msp
    
    # Windows shortcuts
    *.lnk
    

最后一步就是把.gitignore也提交到Git,就完成了!当然检验.gitignore的标准是git status命令是不是说working directory clean

注意⚠️:在Windows系统中,如果在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,无法直接创建。此时你在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。

三、.gitignore文件在使用中的问题

  • 有时候你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了

    $ git add App.class
    The following paths are ignored by one of your .gitignore files:
    App.class
    Use -f if you really want to add them.
    

    你会发现它会提示你使用-f参数来执行添加的操作:

    $ git add -f App.class
    
  • 有可能这个.gitignore文件不是你编写的,但是它编写的不符合实际需求,你可以使用git check-ignore命令进行检查,看是哪一个规则有问题了:

    $ git check-ignore -v App.class
    .gitignore:3:*.class	App.class
    

    这个输出是Git在告诉我们,.gitignore的第3行规则忽略了该文件,此时对这条规则进行修改就好了。

  • 有的时候你要添加的文件和忽略规则是包含关系,就是你想要提交的某个文件属于忽略规则中的某一类,除了使用 -f参数 进行强行添加到版本库中外,还可以在文件中配置排除忽略某个文件,例如:
    .gitignore文件中配置了如下规则:

    # 忽略所有.开头的隐藏文件:
    .*
    # 忽略所有.class文件:
    *.class
    

    但是我们发现.*这个规则把.gitignore也排除了,并且App.class需要被添加到版本库,但是被*.class规则排除了。

    此时可以在.gitignore中添加两条排除规则:

    # 忽略所有.开头的隐藏文件:
    .*
    # 忽略所有.class文件:
    *.class
    
    # 排除忽略.gitignore和App.class:
    !.gitignore
    !App.class
    

    把指定文件排除在.gitignore规则外的写法就是!文件名,所以,只需把例外文件添加进去即可。

总结

  • 忽略某些文件时,需要编写.gitignore
  • .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 中的.gitignore文件的作用及配置 的相关文章

  • 原始文件被分成另外两个文件,git 有没有办法查看内容去了哪里?

    我的问题 我是一名代码审查员 我在GIT中有一个情况 before a txt 然后开发人员决定拆分内容a txt分成 2 个文件 并在一次提交中添加一些更改 after b txt 很少的变化和c txt 一些变化 有没有简单的方法可以看
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • git 标签也会被推送吗?

    自从我创建了我的存储库以来 我所使用的标签似乎 创建不会被推送到存储库 当我做git tag于 本地目录所有标签都存在 但是当我登录到 远程存储库并执行git tag 仅出现前几个 可能是什么问题 你可以这样做 git push tags
  • 如何修复 Centos 上的 Git Segmentation 错误

    我收到分段错误错误 无法在服务器上提取代码 Centos 7 这就是我遇到错误的方法 通过使用以下命令来验证我的服务器是否使用 bitbucket 进行身份验证 ssh T email protected cdn cgi l email p
  • git 索引到底包含什么?

    Git 索引到底包含哪些内容 可以使用什么命令查看索引内容 感谢您的所有回答 我知道索引充当暂存区 提交的内容是在索引中而不是工作树中 我只是好奇索引对象由什么组成 我猜它可能是文件名 目录名 SHA 1 对的列表 也许是一种虚拟树 在 G
  • 获取 git 存储库中每个文件的提交计数

    我正在寻找一种方法来查看有关 git 存储库中每个文件更改频率的统计信息 基本上 文件提交的频率实际上与以前的版本不同 此外 有没有办法获取文件上次更改的日期 我是一个 git 新手 还没有发现任何关于此的信息 任何帮助将不胜感激 这里有两
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi
  • Visual Studio 2017/2019/2022 gitsync/pull/push/fetch 操作卡住,并且无法停止

    我从 Visual Studio 中的 Git Changes 选项卡启动同步 获取 拉取或推送 但操作只是挂起 没有选项可以停止它 我必须点击 X 才能关闭 Visual Studio 如果操作是同步的 它会在其他所有操作上打开一个模式对
  • 如何在“git-pull”自动合并后更改提交消息?

    有时 当结果生成自动合并时 我的协作者会 惊慌 git pull 然后接受默认的提交消息 在推送此提交之前 我想确保该消息得到修复 但是 amend似乎不起作用 修复这种情况下生成的消息的最佳方法是什么 我能为他们提供的最佳指示是 git
  • 如何使用最近的标签来装饰 git 日志?

    git log decorate将相关引用的信息添加到日志输出中 commit 9e895ace5d82df8929b16f58e9f515f6d54ab82d tag v3 10 rc7 Author Linus Torvalds lt
  • Git 子模块未在 Jenkins 构建中更新

    我在詹金斯的一个项目中有一个子模块 我已启用高级设置以递归更新子模块 当我运行构建时 我看到工作区包含子模块中的文件 问题是 它似乎是子模块的第一个修订版 当我推送更改 托管在 GitHub 上的存储库 时 Jenkins 似乎没有更新子模
  • 如何对私有 jelastic 环境进行版本控制

    为了跟踪 Jelastic 托管环境的配置 我想在 git 存储库中对其进行版本控制 该存储库应该是私有的 并包含多个具有不同版本的不同分支 例如master abc123 v1 1 我的第一次尝试是创建一个私有 github 存储库 其中
  • Git 择优挑选然后 rebase

    当我在 git 中挑选樱桃后进行 rebase 时 有一些我不明白的事情 有人可以告诉我发生了什么事吗 场景是这样的 我正在主分支和主题分支上工作 如下所示 该主题有两次提交 C D topic A B master 我的主题分支有问题 所
  • git 漂亮格式占位符之间的空格

    因为某些原因 这个原因 https stackoverflow com questions 53034425 git log pretty format windows strange behavior 我可能需要运行这样的 git 命令
  • 克隆/推送 Git Repos 时出错 443:访问错误,但未使用代理

    当使用 git 远程存储库进行这些操作克隆 推送时 我遇到了非常奇怪的问题 假设我正在尝试将更改推送到远程存储库 git push origin master 然后我会得到这个错误 致命 无法访问 Remote Repo 无法连接到 git
  • Gitlab-runner 更改 builds_dir

    我在生产服务器上的默认 builds dir 是 root builds qL8eZYTH 0 faramarzqoshchi testing gitlab runner 我希望它是这样的 home domain name public h
  • ClearCase 到 Git 的迁移

    我们正在努力将 CC Vobs 转换为 GIT 我们有基础 vobs 和 UCM vobs 我见过很多没有明确步骤的主题 有没有什么工具或步骤可以保留历史记录和分支 不 据我所知 没有 ClearCase 到 Git 的桥梁 转换器或适配器
  • 合并两个github帐户

    假设我有两个 github 帐户xyz 邮件 ID email protected cdn cgi l email protection and abc email protected cdn cgi l email protection
  • 如何在提交后删除本地 git 历史记录?

    我想从 Dropbox 切换到开源 Sparkleshare 它使用 git 进行同步和版本控制 如果说我在文件夹中删除了一个 1GB 文件 它会保留在本地 git 文件夹的历史记录中 但我希望将这种大量数据放在服务器上而不是客户端上 如何
  • 是否有一个 Git 命令可以在推送到 master 之前添加通知/警告

    我有一个用例 其他人依赖我在从 master 下拉时没有启用标志 但我需要在本地处理存储库时启用它 我希望 希望 Git 有一种方法可以添加通知或警告 当请求推送到 master 时会触发 作为某种 提醒 所以也许我的工作流程可能是这样的

随机推荐

  • 如何用Python实现支持向量机(SVM)?

    SVM支持向量机是建立于统计学习理论上的一种分类算法 适合与处理具备高维特征的数据集 SVM算法的数学原理相对比较复杂 好在由于SVM算法的研究与应用如此火爆 CSDN博客里也有大量的好文章对此进行分析 下面给出几个本人认为讲解的相当不错的
  • 在IDEA中使用Scala

    1 本地下载Scala安装包 解压到指定路径 2 配置环境变量 1 新增系统环境变量 此电脑 右键 属性 高级系统设置 环境变量 系统变量 新建 SCALA HOME 2 配置PATH环境变量新增 SCALA HOME bin 3 配置CL
  • 进程的描述与组织

    1 1 1进程的资源 进程需要一定资源才能运行 最重要的资源是内存地址空间 此外还可能需要使用文件 设备等 这些资源均由内核负责管理和分配 分配给进程的资源登记在进程的PCB中 1 进程的地址空间 进程的一个重要构成成分是进程映像 即进程所
  • VS CODE 配色HBuilderX 雅蓝主题

    VS CODE 自配色HBuilderX 雅蓝主题 VS CODE 和 HBuilderX都是优秀的前端编辑器 对于个人而言 喜欢code 的插件和功能 喜欢HBuilderX的雅蓝主题UI 那怎么办呢 网上找了很久也只找到一篇code别的
  • 基础算法【算法习题及模板】下

    目录 前缀和与差分 前缀和 子矩阵的和 差分 差分矩阵 双指针算法 最长连续不重复子序列 数组元素的目标和 判断子序列 位运算 二进制中1的个数 离散化 区间和 区间合并 前缀和与差分 前缀和 输入一个长度为n的整数序列 接下来再输入 m个
  • ubuntu 防火墙简单设置攻略

    ufw是一个主机端的iptables类防火墙配置工具 比较容易上手 一般桌面应用使用ufw已经可以满足要求了 安装方法 sudo apt get install ufw 当然 这是有图形界面的 比较简陋 在新立得里搜索gufw试试 使用方法
  • Python提取pdf所有页面为图片(PyPDF2 + PhthonMagick + GS方法)

    主要参考 https blog csdn net sweeper freedoman article details 53000145 以下是在Python3 6 64位环境下 Anaconda3安装的 操作 1 下载PyPDF2源代码 再
  • Android与Unity3D交互。启动UnityActivity出现黑屏、第一次要加载、第二次则秒开

    Android工程 新建两个类 MyUnityPlayerActivity MyUnityPlay import android app Activity import android content res Resources impor
  • 1034 Head of a Gang (30 分)

    题目 题目链接 题解 并查集 注意坑点 帮派的人数必须大于2 代码 include
  • 网络安全工程师是做什么的?

    顾名思义 网络安全工程师主要是维护网络的安全和稳定 对网页篡改 计算机病毒 系统非法入侵 数据泄密 网站欺骗 服务瘫痪 漏洞非法利用等信息安全事件进行维护 从社会角度来看 网络安全工程师在维护个人信息安全和解开黑客攻击上发挥着巨大的作用 是
  • 深度学习之卷积神经网络(9)经典卷积网络

    深度学习之卷积神经网络 9 经典卷积网络 1 AlexNet 2 VGG系列 3 GoogleLeNet 自2012年AlexNet 1 的提出以来 各种各样的深度卷积神经网络模型相继被提出 其中比较有代表性的有VGG系列 2 Google
  • 把手机当成摄像头_爱思助手和沙漏验机到底靠不靠谱?五年二手机从业者告诉你...

    很多准备购买二手手机听得最多的应该就是 爱思全绿 沙漏全绿 的商家宣传了 其实很多人都不知道 爱思 和 沙漏 是什么 更谈不上靠不靠谱 今天小编以专业的角度给大家分析一下爱思助手和沙漏验机到底靠不靠谱 自从爱思助手推出验机报告之后 也算改变
  • idea代码上传git服务器详细步骤,带图详细讲解教程

    第一步 在git上创建仓库 获得仓库地址 添加前在项目文件夹中没有 git 文件夹 第二步 通过idea添加将代码添加到本地仓库 点击后跳转到下面页面 找到项目路径 点击OK 此时在项目文件夹中会有一个 git文件夹 说明本地仓库创建成功
  • Win7-64bit下MapX的安装和使用

    这两天碰到个VC MapX做飞机航迹回放与显示的单子 虽然没有接下来 今天下午还是学习了一下MapX的配置 在这留下一个记号 以备日后再用 MapX在CDSN上完整的安装包链接 http download csdn net detail f
  • Openfire 中SASL的认证方式之:PLAIN,DIGEST-MD5,anonymous

    SASL 的认证方式包括 1 PLAIN plain是最简单的机制 但同时也是最危险的机制 因为身份证书 登录名称与密码 是以base64字符串格式通过网络 没有任何加密保护措施 因此 使用plain机制时 你可能会想要结合tls 2 DI
  • dedecms怎样调用指定id文章?

    前面我们聊了帝国cms如何调用指定id的文章到首页 作为同行的织梦cms应该也是可以实现的吧 那么 dedecms怎样调用指定id文章呢 使用idlist直接调用指定的ID这样的方法是比较好的 官方给与的说明是 idlist 提取特定文档
  • PDB符号文件与Windows下利用Windbg 分析dump

    PDB简介 跟踪提供程序 例如应用程序或驱动程序 的程序数据库 PDB 符号文件包含用于对跟踪消息设置格式的指令 以便可以按照用户可读的形式显示这些消息 跟踪消息格式设置指令属于跟踪提供程序源代码的一部分 WPP 预处理器从代码中提取这些指
  • 【Spring应用】SPEL表达式使用

    Spring框架中的SpEL Spring Expression Language Spring表达式语言 是一种基于字符串的表达式语言 用于支持在运行时动态地计算表达式的值 它可以在Spring的多个模块中使用 如Spring MVC S
  • 2023年4月计划(ue视频教程)

    虽然不跳槽 但是也面试了两家UE小公司 看看差距 一家是家装的 两个面试官问不出什么问题来 出价试用期1万五 转正后看表现 我 还不如自己学着玩 另一家是做模拟训练的 多人游戏把我问倒了 确实没学过 说明局域网的还是比较重要的 所以还要抓紧
  • Git 中的.gitignore文件的作用及配置

    文章目录 前言 一 gitignore文件是什么 二 如何配置 gitignore文件 三 gitignore文件在使用中的问题 总结 前言 在使用Git的时候 有时候会在Git的工作区目录中产生一个 gitignore文件 该篇来简单介绍