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

Stella981
• 阅读 450

在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 目录了。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
.gitignore被Git忽略
问题:_My.gitignorefileseemstobebeingignoredbyGitcouldthe.gitignorefilebecorrupt?_我的.gitignore文件似乎已被Git忽略.gitignore文件是否已损坏?_Whichfileformat,loc
Wesley13 Wesley13
2年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Stella981 Stella981
2年前
Git 对已经加入版本控制的文件,修改后希望不被提交办法
问题举例:假设网站有一个数据库配置文件db.php,通过git做版本控制,已经将这个文件提交到git库中。但是本地的数据库配置是读取的本地数据库,所以希望这个db.php文件在每次提交代码的时候不被提交。说明:通过.gitignore是无法办到的,因为db.php已经加入版本控制了解决办法:复制代码执行命令将db.php加入不提交队列
Stella981 Stella981
2年前
Git忽略文件 gitignore
1.安装Git后,在项目文件夹内右击,选择'GitBashHere',如下图!(https://static.oschina.net/uploads/img/201709/29002350_ZhCr.png)2.输入vim.gitignore回车!(https://static.oschina
Stella981 Stella981
2年前
Git学习之忽略特殊文件.gitignore的配置
1.Mac中使用Git上传项目代码时忽略.DS\_Store文件简单的说Mac每个目录都会有个文件叫.DS\_Store,它是用于存储当前文件夹的一些Meta信息。所以每次查看Git目录的状态,如果没有add这个.DS\_Store文件,会有Untrackedfiles:的提示,ad
Stella981 Stella981
2年前
Git gitignore文件忽略规则以及不生效解决方案
在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中.gitignore文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:1234567此为注释–将被Git忽略.a忽略所有.a结尾的文件!lib.a但li
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这