`

Git之忽略文件(ignore file)

    博客分类:
  • git
阅读更多

1、    环境

Windows XP SP3 + TortoiseGit + msysGit

 

2、  ignore files的三种方法

 

以下涉及的ignore文件均为如下格式:

# 以'#'开始的行,被视为注释.                                                                                                                          

# 忽略掉所有文件名是 foo.txt的文件.

foo.txt

# 忽略所有生成的 html文件,

*.html

# foo.html是手工维护的,所以例外.

!foo.html

# 忽略所有.o和 .a文件.

*.[oa]

 

【方式一】

在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)。如下图所示。

.gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。

 

 

 

【方式二】

       通过配置.git/info/exclude文件来忽略文件。这种方式对仓库全局有效,只能对自己本地仓库有作用,其他人没办法通过这种方式来共享忽略规则,除非他人也修改其本地仓库的该文件。

 

【方式三】

       通过.git/config配置文件的core. Excludesfile选项,指定一个忽略规则文件(完整路径),如下图所示。忽略规则在文件e:/gitignore.txt中(当然该文件名可以任意取)。

       该方式的作用域是也全局的。

 

【例子】

# 忽略*.o和*.a文件

 *.[oa]

# 忽略*.b和*.B文件,my.b除外

*.[bB]

!my.b

# 忽略dbg文件和dbg目录

dbg

# 只忽略dbg目录,不忽略dbg文件

dbg/

# 只忽略dbg文件,不忽略dbg目录

dbg

!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

/dbg

 

Git 忽略一些文件不加入版本控制

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如:

# 此为注释 – 将被 Git 忽略

            *.a       # 忽略所有 .a 结尾的文件
            !lib.a    # 但 lib.a 除外
            /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
            build/    # 忽略 build/ 目录下的所有文件

            doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

    这样设置了以后 所有的 .pyc 文件都不会添加到版本库中去。

    另外 git 提供了一个全局的 .gitignore,你可以在你的用户目录下创建 ~/.gitignoreglobal 文件,以同样的规则来划定哪些文件是不需要版本控制的。

需要执行 git config --global core.excludesfile ~/.gitignoreglobal来使得它生效。

其他的一些过滤条件

    * ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可

    * [ ^abc]:代表必须不是a,b,c中任一字符

    由于git不会加入空目录,所以下面做法会导致tmp不会存在 tmp/*             //忽略tmp文件夹所有文件

    改下方法,在tmp下也加一个.gitignore,内容为
                        *
                        !.gitignore
    还有一种情况,就是已经commit了,再加入gitignore是无效的,所以需要删除下缓存
                        git rm -r --cached ignore_file

 

注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

    正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
    git update-index --assume-unchanged PATH    在PATH处输入要忽略的文件。

    另外 git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。
 .gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder 。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore 文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。

 

摘自: http://blog.csdn.net/benkaoya/article/details/7932370

分享到:
评论

相关推荐

    vs2022设置git忽略文件

    这时候,我们就需要设置Git忽略这些无须跟踪的文件,以保持代码仓库的整洁。本文将详细介绍如何在VS2022中设置Git忽略文件。 首先,我们需要了解`.gitignore`文件。这是一个文本文件,用于定义Git应该忽略的文件或...

    Android Studio 配置忽略文件的方法实现

    简介 当我们在进行上传代码到Git、SVN仓库时,通常需要先配置忽略文件,这样主要是方便上传的代码下载的...Ignore specified file 忽略指定文件 Ignore all files under 忽略指定文件夹下的文件 Ignore all

    VS2019的git常用过滤文件.gitignore

    VS2019的git常用过滤文件.gitignore

    git 忽略冗余文件文件

    如果需要忽略已追踪的文件,可以使用`git rm --cached <file>`命令将其从索引中移除,然后它们将不再出现在未来的提交中。 总之,`gitignore`文件是Git项目中不可或缺的部分,它帮助我们保持版本控制的整洁,避免...

    git设置忽略文件.gitignore的方法

    `.gitignore`文件是一个文本文件,用于定义哪些文件或文件夹应该被Git忽略。它通常放在项目的根目录下,并且其规则遵循特定的语法。 创建`.gitignore`文件在Windows系统中可能需要通过Git Bash等工具来完成,因为...

    git忽略特殊文件_动力节点Java学院整理

    这个文件包含了所有我们希望Git忽略的文件或文件模式。例如,如果你在Windows系统上进行Python开发,你可能需要忽略Windows自动生成的缩略图文件(如`.Thumbs.db`、`.ehthumbs.db`和`Desktop.ini`)以及Python编译...

    ue4-gitignore:虚幻引擎4项目的带有git-lfs的git设置示例

    首先,`.gitignore`文件是Git的一个核心组成部分,它定义了哪些文件或目录应该被Git忽略,不纳入版本控制。对于UE4项目,我们需要在`.gitignore`文件中列出所有不应版本化的文件,例如临时文件、编译生成的中间文件...

    Android 使用版本控制工具时添加忽略文件的方式(详解)

    - `Ignore specified file`:忽略特定的单个文件。 - `Ignore all files under`:忽略指定文件夹下的所有文件。 - `Ignore all files matching`:忽略符合特定模式的所有文件。 常见的需要忽略的文件和文件夹...

    详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

    在插件安装后,用户可以通过右键点击项目目录,选择“New”->“.ignore file”->“.gitignore file (Git)”来创建新的.gitignore文件。在创建过程中,可以选择不同的模板(Example user template),然后根据需要...

    100个Git常用命令及用法-IT老卢.pdf

    - `.gitignore`:配置文件,指定哪些文件或目录应被Git忽略。 - `git rm -r --cached .`:从版本库中删除所有已被`.gitignore`忽略的文件和目录。 - `git check-ignore -v <file>`:检查文件是否被`.gitignore`...

    gitignore 文件的使用规则

    3. 提交更改:`git commit -m "Ignore <file> using .gitignore"` #### 示例 下面是一个 `.gitignore` 文件的例子,展示了一些常见的忽略规则: ```plaintext # 忽略所有 .a 文件 *.a # 但是不忽略 lib.a 文件 !...

    Mac PyCharm中的.gitignore 安装设置教程

    如果你已经将一些被忽略的文件添加到了版本库,需要通过`git rm --cached <file>`命令从版本库中移除它们,之后再提交变更。 5. **自定义忽略规则**: 虽然PyCharm提供了一些预设的模板,但你也可以根据项目的具体...

    02Git bash-外扩tree的安装与使用教程.zip

    - `-I` 或 `--ignore` `<模式>`:忽略符合指定模式的文件或目录。 例如,要在当前目录下显示所有文件和目录,你可以运行`tree`;如果只想看目录,可以运行`tree -d`。 `tree`命令对于查看项目结构、理解和管理复杂...

    .gitignore 迭代

    而`.gitignore`文件是Git中的一个重要组成部分,它定义了哪些文件或目录应该被Git忽略,不纳入版本控制。本文将深入探讨`.gitignore`的用途、工作原理以及其在迭代过程中的作用。 首先,理解`.gitignore`的基本概念...

    gitignore.rs:在 Rust 中实现 .gitignore 文件解析和 glob 测试

    如果要检查给定路径是否会被.gitignore文件排除,请使用此库。 它目前建立在 Rust 的最新版本和稳定版本上。 用法 该板条箱称为gitignore ,您可以通过获得它: [ dependencies ] gitignore = " x.y.z " 你也...

    批量替换程序的文件注释头

    对于`svn`,你可以先将文件标记为“忽略变更”(`svn propset svn:ignore-changes somefile`),替换后再取消忽略。 标签中提到的"IM,IMSDK"表明这可能与即时通讯(Instant Messaging)的软件开发有关。在IM项目中...

    毕业设计MATLAB_文件交换库生成器.zip

    6. `ignore.txt`:类似于`.gitignore`,这可能是一个特定于项目或工具的忽略文件,指示哪些文件或文件类型不应被处理或考虑。 7. `_buildFexLibrary on FEX.url`:这是一个URL链接,指向MATLAB File Exchange上的...

Global site tag (gtag.js) - Google Analytics