为什么要忽略某些文件或文件夹的变化?

git作为一款项目文件变更版本管理软件,其主要功能之一就是追踪项目文件夹内各种文件及文件夹的变更情况。但是,在日常使用中,并非项目文件夹下的所有文件及文件夹变更都需要纳入版本控制。例如我们使用自己的开发环境对项目进行开发时产生的项目配置文件、工作区配置文件。因为每个项目参与者的开发环境不尽相同,产生的项目配置文件及工作区配置也会有很大不同。如果将这些文件一并上传到服务器端,不仅无益于git对源代码的版本管理,反而会给其他项目参与者带来困扰。除此之外,还有我们在本地开发环境下对源代码编译产生的编译结果,更不需要提交到服务器端。首先,每个项目参与者都可以通过编译源代码获得编译结果;其次,一个项目的编译结果可能超过几百MB甚至上GB。把这些内容提交到服务器端,会浪费大量的公共存储空间和大量的上传下载时间。所以,我们需要告诉git不用去管理这些文件的变更信息,需要git在版本管理时忽略这些文件的变更信息。

如何忽略这些文件和文件夹的变更信息?

1、创建.gitignore文件

在git管理的项目文件夹中(严格的讲,应该叫做git的本地repository),创建一个文件名为“.gitignore”的纯文本文件,如图1所示:

图1

上图中的.gitignore文件就是我用notepad++刚刚创建出来用于告诉git忽略哪些文件变更的配置文件。在这里多说一句,Git在扫描文件变更时,会先查看.gitignore的配置,根据.gitignore中的配置再决定哪些文件需要被标注上untracked。当然,那些被ignore的文件肯定不会被标上untracked,因为那些文件对于git而言是透明的。

2、编辑.gitignore文件

在图1中,target文件夹是本地编译结果,nbactions.xml和nb-configuration.xml都是Netbeans IDE的相关配置文件,上述这些文件和文件夹我都不需要提交到远程服务器端。我们先来看看,如果.gitignore中什么都不写,git会怎样处理上述文件和文件夹。这里我使用了GitHub官网提供的GitHub Desktop软件,感兴趣的朋友可以去这里下载(https://desktop.github.com/)

这是GitHub Desktop中显示的需要提交到版本库中的文件列表,如图2所示。

图2

git将需要提交到版本库的资源文件全部列出来了,几乎全是target目录下的东西。target目录是maven项目中专门用来暂存源代码编译结果的目录,这些内容不用提交到服务器端。还有nbactions.xml和nb-configuration.xml这两个文件,也不需要提交到服务器端。

让我们编辑.gitignore文件,将target、nbactions.xml、nb-configuration.xml三个条目添加到.gitignore中,如列表1所示。

##############################

## Folders ##

##############################

target

##############################

## Netbeans conf ##

##############################

nb-configuration.xml

nbactions.xml

列表1

再来看看GitHut Desktop中有什么变化,如图3所示。

图3

上述我们不希望提交的文件变更全部消失了,git不会再追踪这些文件的变更情况,也不会将它们提交到服务器端。

Tips:

1、在.gitignore文件中还可以使用wildcard(某位同学称之为“野卡”

)通配符,例如,*.log,去掉.gitignore同一文件夹中的所有后缀名为log的文件。GitHub上提供了一份常用的忽略规则,大家可以拿来参考,详见此处:https://gist.github.com/octocat/9257657。

2、如果.gitignore忽略规则创建于文件提交代码库之后,则.gitignore规则不会影响目前所提交的文件(不会自动把文件从服务器端删除掉)。你需要手动删除,用如下的方式:

git rm --cached

即你要移除的文件全名。

git 如何忽略掉文件夹_如何使git忽略某些文件或文件夹相关推荐

  1. .git文件夹_如何使用git把本地代码上传(更新)到github上

    什么是git?git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.git是一种工具,它能更好的让我们管理代码.很多时候如果我们需要保持本地代码和github代码版本 ...

  2. cmd 删除文件夹_永远不要碰的5个macOS文件夹及原因

    macOS有一个深度和嵌套的文件夹结构,默认的macOS安装有许多听起来不熟悉的目录.大多数用户根本不需要接触这些文件.苹果隐藏某些文件夹是有原因的.打乱这些目录可能会导致系统不稳定,数据丢失,或者更 ...

  3. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...

    一.可以将git简单的分为三个区域   1.工作区(working directory)    2.暂缓区(stage index)    3.历史记录区(history)    如图: 其中git ...

  4. linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统

    这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法. 毕竟python语言中,有下载功能的 ...

  5. git拉取代码如何解决冲突_开源项目 git pull 代码冲突的解决方式?

    假设我正在使用一个开源项目,为了时刻保持根官方github保持同步,我用git clone项目到本地并进行二次开发,我的大部分二次开发是不会和官方的核心文件产生冲突的,但是个别文件还是会冲突.. 比如 ...

  6. mysql遍历 xml文件路径_解决Mapper接口和mapper.xml的文件位置问题

    今天遇到一个问题是mybatis中接口和对应的mapper文件位置不同,而引起的操作也会不同,在网上找了好久最终找到了方法,这里就简单的解析一下: 我们知道在典型的maven工程中,目录结构有:src ...

  7. python h5s文件 压缩_如何用python解压zip压缩文件

    前言:python在办公上非常有用,它可以解压文件,可以处理表格,还可以操作浏览器,只要你能想到的功能,它都能做到,今天笔者就为大家介绍一下如何用处理压缩文件. 打开cmd,输入python3,今天的 ...

  8. python读压缩文件内容_使用Python读写及压缩和解压缩文件的示例

    读写文件 首先看一个例子: f = open('thefile.txt','w') #以写方式打开, try: f.write('wokao') finally: f.close() 文件的打开方式: ...

  9. python访问带密码的共享文件夹_设置带密码和读写权限的共享文件夹 - Hakka

    目录导航 1.启用网络发现和密码访问共享 1.1 使用组合键"Win+R"打开运行窗口,输入"control"打开控制面板 1.2 在控制面板中,点击" ...

最新文章

  1. 4.11 一维到三维推广-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  2. ISP与IAP的区别
  3. 《面向对象的思考过程(原书第4版)》一1.11 组合
  4. 再写单链表(不带头单链表)
  5. aix oracle监听配置_Oracel:ORA-12518:监听程序无法分发客户机连接
  6. C++中的位域(bit-filed):一种节省空间的成员
  7. django-模板文件加载顺序
  8. python线程池原理_Python3线程池ThreadPoolExecutor总结
  9. mysql单实例安装
  10. [ 逻辑锻炼] 用 JavaScript 做一个小游戏 ——2048 (详解版)
  11. linux 下载python命令_Linux下修改Python命令的方法示例(附代码)
  12. xml简单理解,xml增删改操作,仅作笔记,不作为学习借鉴
  13. 2012年2月编程语言排行榜:用图形编程的LOGO语言
  14. java:一个求面积、体积小程序
  15. 软件工程大学生职业生涯规划_我的大学生职业生涯规划书(软件工程专业的职业生涯规划书)...
  16. 极视角联合英伟达亮相CNCC大会,分享极星平台的进阶之路
  17. 麦吉尔 计算机科学学分,麦大毕业要求深度解析,还你一个真实的麦吉尔大学!...
  18. 支付宝AR抢红包?前端轻松就破解~
  19. 区块链ICO是什么意思?回答所有你关于ICO的问题
  20. 我是如何用问卷调查小程序来赚钱的

热门文章

  1. 【Android Studio快捷键】之导入相应包声明(import packages)
  2. sql时间小问题汇总
  3. Linux内存是怎么工作的
  4. find 排除_排列五248期定位预测,大师排除两头两尾
  5. python字符串驻留机制_python的内存驻留机制(小数据池)
  6. oracle组合索引最左原则,复合索引最左原则 -- 实战
  7. 2020年书法落款_快来排排2020鼠年书法落款时间表,收!
  8. 用python把相同名称的放在一起,python实现将具有相同名称的文件放入相应的文件夹中,把,对应,内...
  9. CMake配置OpenCV时,显示错误:find_host_package(PythonInterp 2.7)' found wrong Python version
  10. 如何从程序中改变音量?