*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「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. 肖sir__ 代码题 ___华为od练习

    www.online1987.com 这个网站,有概率看到机考原题,后续内招,这个网站做到了原题

  2. SQL中使用JOIN时,过滤条件的位置

    sql语句 (SELECT * FROM t1 WHERE {subquery_where_condition}) a JOIN (SELECT * FROM t2 WHERE {subquery_w ...

  3. 基于ALSA库实现音频采集和播放遇到的问题

    最近基于Linux系统C语言实现音频的采集和播放,建立了两个子线程,一个通过调用snd_pcm_readi来实现采集数据,并存入FIFO中,另一个从FIFO中取数据并通过udp的sendto发送出去, ...

  4. uniapp滚动组件scroll-view

    //scroll-x="true"  || scroll-y="true" <view class="scroll-view"> ...

  5. linux中 查看 CPU 内存负载 磁盘IO 网络IO情况

    1.压测时如何观察机器的CPU负载 先来看一个最最常用的监测linux机器性能的命令,就是top命令,直接在linux命令行只能够输入top指令就可以了,然后我们这里来给大家解释一下,top指令展示出 ...

  6. Test Fixture框架结构

    Test Fixture框架 1.结构: setup() testcase() teardown() 2.新建unittest文件,命名unittestdemo.py 1 import unittes ...

  7. Flink配置详解及实践

    #jobManager的IP地址jobmanager.rpc.address: localhost #JobManager的端口号jobmanager.rpc.port: 6123 # JobMana ...

  8. 如何在超星下载非资料页面的ppt

    首先打开迅雷(没有就复制到网页下载) 点击f12 点击网络,筛查出输入flag,在响应模块中找到ppt,复制网址并下载

  9. [Unity3D 小Tricks] 如何修改Unity3d脚本默认模板?

    众所周知,unity默认的模板总是Update()和Start(),但往往我们并不需要,每次都要手动删除非常麻烦. 但可以更改如下模板文件 C:\Program Files\Unity 2020.3. ...

  10. Sky Full of Stars

    题目链接: luogu cf 题目大意: 给定一个 \(n \times n\) 的矩形,在里面填充三种颜色,求使得至少一行或至少一列同色的方案数. 解法 容斥 我们不去考虑反演,直接开始容斥,我们不 ...