$ git status
On branch feature/20160420_complain_630222
Untracked files:
(use "git add <file>..." to include in what will be committed)

在文件夹中,经常会有些“其他”文件,比如上节课最后提到的,编辑器产生~结尾的备份文件,或者一些临时文件。又可能,某些文件我们只是在本地使用,并不想提交到远程的仓库中被别人看到。但如果我们不跟踪这些文件,Git会一直很执着地提醒我们工作目录中有一些未被跟踪的文件。如果你想清净一点,就可以通过.gitignore文件忽略你不想看到的文件。

要感受一下忽略文件的效果,首先你得有打算忽略的文件,所以我们强行创建一个叫做readme.txt.tmp的文件,假设它是readme.txt产生的临时文件。

git status 看一下效果,同上节课中一样,在untracked files里列出了这个文件:

# On branch master

# Untracked files:

#   (use "git add <file>..." to include in what will be committed)

#

# readme.txt.tmp

nothing added to commit but untracked files present (use "git add" to track)

然后我们在工作目录中新建一个.gitignore文件,在里面写上一行:

*tmp

保存退出,再运行 git status:

# On branch master

# Untracked files:

#   (use "git add <file>..." to include in what will be committed)

#

# .gitignore

nothing added to commit but untracked files present (use "git add" to track)

readme.txt.tmp文件消失了,untracked files里只剩下刚创建的.gitignore文件。

来看一下《Pro Git》里对.gitignore格式规范的解释:

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。

  • 可以使用标准的 glob 模式匹配。

  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。

  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式:

星号(*)匹配零个或多个任意字符;

[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);

问号(?)只匹配一个任意字符;

如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。

所以我们前面写的 *tmp,就是指忽略所有以tmp结尾的文件。

再来看一个 .gitignore 文件的例子:

# 此为注释 – 将被 Git 忽略

# 忽略所有 .a 结尾的文件

*.a

# 但 lib.a 除外

!lib.a

# 仅仅忽略项目根目录下的 TODO 文件

# 不包括 subdir/TODO

/TODO

# 忽略 build/ 目录下的所有文件

build/

# 忽略 doc 目录下的所有 .txt 文件

# 会忽略 doc/notes.txt

# 但不包括 doc/server/arch.txt

doc/*.txt

当然,你也可以把.gitignore文件本身从git中忽略。但我不建议这么做,而是所有协作开发者使用统一的规范,避免有人因为没写.gitignore而提交上去一些奇怪的文件。

在项目一开始就把.gitignore设置好,不仅是为了好看,也是避免不必要的文件对代码产生干扰。比如有些需要本地生成的文件,如果放在远程仓库中被其他人下载使用,也可能会导致程序无法正常运行。

Untracked files不想add的更多相关文章

  1. git中Untracked files如何清除

    $ git status # On branch test # Untracked files: # (use "git add <file>..." to inclu ...

  2. git add Untracked files

    git add *  将目录里的所有文件提交到暂存区后 git status 查看状态  所有文件都是绿色的表示本地的文件和暂存区的文件是一样的 然后在本地修改一个文件 然后新建一个文件 在使用git ...

  3. nothing added to commit but untracked files present.

    当我们使用git的时候 如果我们在工作区修改了某些文件而没有新增文件,可以直接用: $ git commit --all -m "备注信息"                  -- ...

  4. npm run eject 命令后出现This git repository has untracked files or uncommitted changes错误

    npm run eject 暴露隐藏的文件,不可逆 结果出现下面的问题 This git repository has untracked files or uncommitted changes: ...

  5. Git操作删除 untracked files

    最近使用git 管理项目的时候,编译过程中出现了很多中间文件,今天发现使用 git clean 命令可以很方便进行清除: # 删除 untracked files git clean -f # 连 u ...

  6. Mac Github:第一次上传成功,解决图片不可显示,Initial commit Untracked files

    在上传之前需要先给自己的电脑安装SSH 上传成功用的是github的官方提示,直接复制去做就可以了 解决README.md中图片不可显示:图片路径到底要怎么写? https://blog.csdn.n ...

  7. git怎样删除未监视的文件untracked files

    # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也 ...

  8. Git操作----删除untracked files

    # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也 ...

  9. 删除git库中untracked files(未监控)的文件

    https://blog.csdn.net/ronnyjiang/article/details/53507306 在编译git库拉下来的代码时,往往会产生一些中间文件,这些文件我们根本不需要,尤其是 ...

随机推荐

  1. 单元测试 Mocking 类库需具备的特性

    一个优秀的单元测试 Mocking 类库,需要具备如下几个特性: 易用性:有非常明确的 API ,易于使用并易于记忆. 健壮性:行为结果始终一致,并保持准确. 帮助性:当程序出错时,给出尽可能明确的原 ...

  2. 配置Hadoop开发环境(Eclipse)

    参考博文: http://blog.csdn.net/zythy/article/details/17397153 http://www.tuicool.com/articles/AjUZrq 注意事 ...

  3. 我所常用的ajax调用格式

    ajax: $.ajax({    type: "post",    datatype: "json",    contentType: "appli ...

  4. CentOS下搭建NFS服务器总结

    环境介绍: . 服务器: 192.168.0.100 . 客户机: 192.168.0.101 安装软件包: . 服务器和客户机都要安装nfs 和 rpcbind 软件包: yum -y instal ...

  5. 【原创】jmeter3.0在beanshell中输入中文乱码以及字体大小的更改

    我使用的是最新的jmeter3.0版本,新建一个beanshell sampler,在里面输入中文,发现显示的是乱码,而且字体非常小,看着吃力,调研了一下,可以在bin/jmeter.properti ...

  6. atitit查询表修改表字段没反应--解锁锁定的表

    atitit查询表修改表字段没反应--解锁锁定的表 查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweix ...

  7. Leetcode 232 Implement Queue using Stacks STL

    本题用两个栈实现队列,用栈的基本操作去实现队列的所有基本操作push(),pop(),peek()以及empty() sa作为输入栈,sb作为输出栈,将sa输入元素的反转过来放到sb中 push与sa ...

  8. React组件系统、props与状态(state)

     多个组件合成一个组件: var style = { fontSize: 20, color: '#ff0000' }; var WebSite = React.createClass({ rende ...

  9. spring源码 — 三、AOP代理生成

    AOP代理生成 AOP就是面向切面编程,主要作用就是抽取公共代码,无侵入的增强现有类的功能.从一个简单的spring AOP配置开始: <?xml version="1.0" ...

  10. 实用的ajaxfileupload插件

    一.ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数 ...