前言

版本控制说简单也简单,说复杂也困难的多。作为开发者,最基础的版本管理和团队协作的功能必须掌握。而其他一些相关的信息也可以了解下。比如,这次就有同事遇到了问题。

遇到的问题

在windows下,往repo里添加了一个xxx.exe文件,然后检查sourceTree却并没找到暂存的更改。

解决

我由于长时间不用source tree, 也不用eclipse,对这两种工具里的git操作也不太熟悉,幸好git的操作都是基于命令行的。

我先检查了.gitignore文件,发现里面并没有忽略所添加的xxx.exe。然后就很奇怪,难道会有global的ignore?果然,真有!

可以通过以下命令确定我们的被ignore的规则:

D:\workspace\learn\git-test>git check-ignore -v src/git-bash.exe
"C:\\Users\\Ryan\\Documents\\gitignore_global.txt":6:*.exe src/git-bash.exe

从结果可以看出,果然存在一个global的配置。


#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr

删除第6行的rule。于是发现可以继续追踪文件了。

gitignore的意义

在开发过程中发现很多同事并不理解gitignore的意义所在,经常看到有同事新建了一个repo,然后并没有.gitignore,然后就会发现推送一堆ide或生成的配置文件到remote。或者,并没有推送过去,但当我clone下来,然后本地修改提交后发现很多不需要的文件被追踪。后来发现,原来大家习惯了source tree,然后都是提交的时候选择想要的文件,然后推送。这真是个令人不开心的发现。个人认为,这种做法对开发是很不友好的,虽然source tree的图形化界面简化了git使用。但如果忘了提交某个文件怎么办?如果不小心多添加了文件怎么办?如果一次添加了大量的文件如何排查?所以,除了要添加.gitignore之外,系统的学习下git的使用也是很有必要的。

比如,曾经遇到过这样的问题,由于repo最初没有gitignore,我后面加上ignore之后,发现被ignore的文件依旧会被追踪。那么,如何彻底的清除和ignore这些文件呢?

参考

查找git ignore的追踪的更多相关文章

  1. [git] ignore文件规则失效

    背景 在某次项目,发现已经将.iml规则写进.ignore文件,但是对.iml的修改依然会出现在changelist中. 解决方案 先引用git官网上的描述 gitignore - Specifies ...

  2. intellj Idea git ignore文件的.idea不起作用解决

    问题描述: idea中使用git每次提交的时候都会选中项目目录下.idea目录,虽然设置了.ignore文件但是不起作用. 综合网上搜索结果,并完美解决,方法如下: 1.原因就是git已经关联追踪了这 ...

  3. git ignore 总结

    git ignore 总结 忽略和 ! 不忽略的先后顺序 gitignore的规则是有从上到下的顺序的,所以当我们使用 ! 不忽略的时候,这个顺序会对结果产生影响 例如: # 忽略所有 folder ...

  4. pycharm添加git ignore

    pycharm现在提供了git ignore,很方便 从这里下载扩展 https://plugins.jetbrains.com/plugin/7495--ignore 放到pycharm根目录\pl ...

  5. git ignore文件

    创建.gitignore文件来设置git要忽略的文件模式: 官方文件列列表:https://github.com/github/gitignore 1. 所有空行或者以 # 开头的行都会被 Git 忽 ...

  6. Git - ignore过滤文件

    Git - ignore 官网:https://git-scm.com/docs/gitignore 今天在初始化仓库的时候,考虑到如何过滤不需要的文件进入版本控制系统.所以去查阅了一番官方文档. 想 ...

  7. git ignore 如何忽略已经提交的文件修改

    git ignore git ignore的作用很简单,本地仓库忽略一些文件的修改. ignore的规格可以按文件匹配,按后缀匹配或者按文件夹匹配. 如果在项目开发过程中,需要忽略某一个文件已经提交的 ...

  8. 温故知新,微软官方推荐的Visual Studio源代码管理之Git Ignore清单,开启新项目必备宝书

    什么是Git Ignore清单 https://git-scm.com/docs/gitignore 简单来说,在Git进行源代码管理中,我们可以通过建立.gitignore来实现一个忽略的黑名单管理 ...

  9. Git忽略已追踪文件或文件夹

    今天拉取代码,用vs生成后发现obj文件夹下自动生成的文件被同事提交了,这个本应该加入到ignore的 我就需要把这个文件夹加入到gitignore, 不过已经追踪的文件和文件夹,直接添加到gitig ...

随机推荐

  1. Injection of autowired dependencies failed

    error:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainCo ...

  2. 大数据量情况下高效比较两个list

    比如,对两个list<object>进行去重,合并操作时,一般的写法为两个for循环删掉一个list中重复的,然后再合并. 如果数据量在千条级别,这个速度还是比较快的.但如果数据量超过20 ...

  3. README.md用法

    简单说明常用标签 # 标题标签与h1~h6 相似 也有6个 = 高级标题标签 -  中标签 * 列表标签 与 <li> 标签相似 `  实体标签,内容会换行 ``` 实体标签 内容保持编辑 ...

  4. Node与apidoc的邂逅——NodeJS Restful 的API文档生成

    作为后台根据需求文档开发完成接口后,交付给前台(angular vue等)做开发,不可能让前台每个接口调用都去查看你的后台代码一点点查找.前台开发若不懂你的代码呢?让他一个接口一个接口去问你怎么调用, ...

  5. FineReport破解心得

    注:写文档目的主要用于技术学习,了解技术帆软公司技术大牛是怎么设计系统,请勿用于商用. 一.      工具准备 1.         javassist:class代码修改工具 2.         ...

  6. TLA+和并发系统正确性验证

    TLA+介绍 TLA+(WIKI,官网)是一门领域特定语言,主要用于数理逻辑计算和并发系统的正确性验证.TLA+中的TLA代表的是"行为时序逻辑(Temporal Logic of Acti ...

  7. Effective Java 第三版——37. 使用EnumMap替代序数索引

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  8. NGUI_Depth

    四.深度(Depth)概念; 1. (1).每一个UIPanel和每一个UI控件都一定会有一个Depth,深度值大代表显示的优先级高(会趋向于在界面更上层显示) (2).Depth决定的是UI的显示层 ...

  9. VMware安装Centos6.4及CentOS的基本设置

    1.vmware安装vmware tools实现与本地磁盘文件夹的共享 2.设置Centos网络 vmware采用nat方式.虚拟机网络使用虚拟网卡(VMware Network Adapter VM ...

  10. day01的那些事

    代码之道 路漫漫其修远兮,吾将上下而求索