*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dp9Mwq7vf0ASF_FftBN8Ww

作为一枚合格的代码贡献者,时常需要跟踪自己或者团队代码的变更,那么就很有必要了解并掌握一些软件代码版本管理工具或者系统,比如 Git、SVN、CVS、VSS等。

版本管理工具比较多,都有存在的理由,虽然现在大型的软件工程都流行使用 git,不过大部分的工程也需要小而美的工具,比如 VSS。我还记得当年新入职的技术经理就带着我们没几个人的小团队上手了第一款软件版本管理工具 VSS,它的特点就是非常简单,每个文件只能同时由一个成员修改,改完释放权限等待其它成员继续使用。

不过,这里主要介绍主流的版本管理工具 Git,有一些使用 Git 过程中的小技巧想要分享给大家。

很多时候,由于偶然的原因,把一些不需要共享给团队其他人的文件也提交到了代码仓库,那么当这类文件有更改的时候,怎么让 git 自动忽略掉这些文件而避免被提交上去呢?

方法就是,为工程添加文件 gitignore。

文件介绍

在 Git 管理的工程下,文件有几种划分:

  1. tracked – 这种是被 Git 最新所追踪到的并且已经暂存和提交到仓库的所有文件。
  2. untracked – 这种是在 Git 管理的工程目录下创建的但还没有被暂存文件或提交到仓库的文件。
  3. ignored – 这种是被 Git 管理工具可以忽略的文件。

Git 会对工程文件夹内的 gitignore 文件做检索,如果找到该文件,则根据 gitignore 指定的文件、文件夹,执行忽略并放弃跟踪范围内的文件。gitignore 指定的文件就是 ignored 文件。

创建 gitignore

一般是在 Git 管理的工程根目录创建文件 gitignore,并且在文件名前添加点号(.),这是为了让文件管理器识别这个文件为默认隐藏。所以在类 unix 系统下,直接输入 ls 是看不到这个文件的,需要添加选项 -a。

ls -a

其实 gitignore 文件的存放位置没有固定,这就意味着在同一个工程下可以存在多个 gitignore 文件。

在类 unix 系统下,都可以这样创建 gitignore 文件

touch .gitignore

git 如何忽略文件或者文件夹

一般,日常开发中,我们认为提交到仓库的工程文件应该是最简化的。只要文件或者文件夹可以通过工程构建过程自动重新生成的,那么它们都可以不需要被版本管理工具 git 追踪到。如何利用好 gitignore 文件呢?

gitignore 内可以指定单个或者多个文件,甚至是文件夹。每一行填一个范式(pattern),范式可以是文件名或者文件夹名字,其中还可包含通配符 *。通配符的使用可以增强指定文件范围的灵活性。填写的文件名或者文件夹可以是相对路径或者绝对路径,相对路径是以 gitignore 文件所在目录开始。

我们来看一个简单的 gitignore 文件长什么样子

第一行,直接指定了一个文件名 notice.txt,意思就是相对路径下 notice.txt 将会被 git 忽略追踪。

第二行,指定的是一个文件夹名字 project,后边还带上了 / 以标明是文件夹,意思就是相对路径下 project 文件夹内所有文件以及子文件都将会被 git 忽略追踪。

第三行,指定了 app 开头的所有文件名,意思就是相对路径下 app 开头的所有文件将会被 git 忽略追踪。

第四行,是的,把 gitignore 文件自己也指定为忽略追踪。

在 gitignore 文件里添加好范式后,就可以查看一下 git 管理的工程目录是否还在追踪那些应该被忽略掉的文件了

git status

如果文件已经被提交?

在使用 gitignore 文件来添加忽略文件的时候,经常会碰到有些文件或者文件夹明明已经被添加到 gitignore 文件里了,但就是还会被 git 追踪到有更新的内容。

这是因为,这些文件或者文件夹在之前的提交记录里,已经被暂存和提交到仓库了。那么怎么办?

第一步,先把这些文件从仓库中移除,比如我有个构建的中间文件 xxx 曾经被错误提交上去了

git rm xxx

但是,上面的操作会把本地工程目录中的 xxx 文件也删除掉,如果不需要在本地也删除,可以在 rm 指令后边添加选项 --cached

git rm --cached xxx

今天就先介绍这么多,如果你有更好的技巧,期待和你的交流!

微信公众号 ENG八戒

Git 小技巧:忽略某些文件的更改的更多相关文章

  1. git使用小技巧-忽略提交文件设置

    前言 我们可以把自己的代码放到github上,但是我们有的文件或者文件夹不想提交到github上,这时候用到一个忽略文件 操作方法 * 在项目根目录创建一个 .gitignore文件 * 打开.git ...

  2. Android studio 开发中 用git实现批量忽略特定文件的方法

    git实现批量忽略特定文件的方法 在用AndroidStudio开发项目的时候,3个人协同开发,那么用Git同步代码,会将模块中的大量iml文件同步,每次都会提交和更新,一个一个的去忽略他们,显然是最 ...

  3. git提交如何忽略某些文件

    在使用git对项目进行版本管理的时候,我们总有一些不需要提交到版本库里的文件和文件夹,这个时候我们就需要让git自动忽略掉一下文件. 使用.gitignore忽略文件 为了让git忽略指定的文件和文件 ...

  4. 转:git设置过滤忽略的文件或文件夹

    from: https://www.cnblogs.com/foohack/p/4629255.html git设置过滤忽略的文件或文件夹   我们一般向代码仓库提交项目的时候,一般需要忽略编译生成的 ...

  5. git提交时忽略指定文件

    git提交时忽略指定文件 我们在项目开发过程中经常用到git来管理自己的项目,使用git版本控制进行多人协作开发具有许多优势,这里就不一一阐述了,有兴趣的同学可以自己去查找资料进行系统的学习.而本篇文 ...

  6. KiCad 工程用 Git 管理需要忽略哪些文件?

    KiCAD 工程用 Git 管理需要忽略哪些文件? KiCAD 使用的 文本格式,天生可以用 Git 来管理. 但是并非所有文件需要使用 Git 管理,以下文件可以忽略. *.bak fp-info- ...

  7. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  8. Git 小技巧

    分享git的几个小技巧,后面会根据使用补充.目前包括git撤销本地修改.git回退到前n个版本.git多用户提交冲突解决.git 命令简化.欢迎大家补充^_* 1.git撤销本地修改 git rese ...

  9. git小技巧

    1 git提交时如何忽略一些文件: 在git根目录下添加,然后提交,就可以使用了,详细的语法详见 https://github.com/github/gitignore github提供了一个通用的. ...

  10. Git学习之忽略特殊文件.gitignore的配置

    1.Mac中使用Git上传项目代码时忽略.DS_Store文件 简单的说Mac每个目录都会有个文件叫.DS_Store,它是用于存储当前文件夹的一些Meta信息.所以每次查看Git目录的状态,如果没有 ...

随机推荐

  1. 2022-3-21内部群每日三题-清辉PMP

    1.Sprint的速度低于预期,敏捷团队成员应该怎么做? A.限制团队成员和客户之间的沟通,以防止不必要的焦虑. B.管理沟通,以重置相应团队成员和干系人的期望. C.管理几名团队成员和客户之间的沟通 ...

  2. 谈谈 Redis 的过期策略

    在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞.要搞清楚这些,就要了 ...

  3. Path Manipulation安全漏洞处理方法

    1 public static String pathManipulation(String path) { 2 HashMap<String, String> map = new Has ...

  4. kali Linux--打开&关闭防火墙

    1.安装ufw apt-get install ufw 2.关闭防火墙 ufw disable. 3.开启防火墙 ufw enable

  5. 启动Eureka报org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource

    我出现这种情况是下图两个版本不对应 要结合官文档的版本号 也就是说将parent版本号改为2.2.x或者2.3.x

  6. 学习lua-01,遍历集合,多入参循环处理,类型判断,数字运算

    --function maxnum(tab1) -- local b = 1 -- local a = tab1[b] -- for i, v in ipairs(tab1) do -- if v & ...

  7. 渗透测试工具&导航合集

    #前言 表哥们一般都有自己强大的工具库,今天我也稍作整理,分享交流出来一部分 #信息收集 ####dirbuster kali自带的一款工具,fuzz很方便 ####gorailgun 一款自动化做的 ...

  8. 网络编程之 urllib 模块

    首先urlib并不是一个很好用的方法,这里仅作简单介绍.一般我们用requests方法来代替urlib方法. 1. get请求 1 from urllib import request 2 url = ...

  9. NOI1994 删数问题

    [问题描述]键盘输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小. 输入 两行第 ...

  10. 20211306丁文博 python技能树、CSDN MarkDown编辑器

    测评内容: python技能树.CSDN MarkDown编辑器 指导老师:王志强 班级:2113 学号:20211306 姓名:丁文博 https://blog.csdn.net/weixin_62 ...