git 填坑之 git 暂存区忽略文件
今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改。
本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录:
开始分析究竟是因为什么导致的这样诡异的结果:
1. 大小写不敏感?
第一反应是文件对于大小写不敏感了,想到配置 git config。
查询到有这样一条指令 git config ignorecase false 如此指令就是大小写敏感。
依照设置以后,再次执行 git status ,仍然没有文件修改 modified 的提示。
后来查询 ignorecase 这个设置应该是对于 文件名 的大小写敏感,和内容应该没有太大关系。
再次执行 git --unset-all ignorecase 删除掉设置的大小写属性,git config ignorecase true 设置为大小写不敏感,毕竟我们不需要检测文件名的大小写。
2. 文件被忽略了?
既然不是大小写的文件,看来是提交文件被忽略了。查看 .gitignore 文件,发现并没有忽略掉这个文件,更为诡异的是删除了这个文件也不提示错误,但是执行 git checkout -- [FILE_NAME] 却是可以恢复这个文件。
有点抓狂,究竟是什么导致了这样呢?
3. index 文件被忽略了
遍寻不得要领后,选择git clone 远端仓库的版本,修改同样的文件,竟然可以检测到文件的modified状态
看来 文件不能被监测到状态变化的原因是 本地仓库被设置了某种奇怪的属性。
但是是什么属性,一时又找不到原因。就暂且放置了,还好远端仓库已经提交了同样的版本。
接着又把 《Git 权威指南》找出来翻看,翻到 Git暂存区 这章节的内容的时候,突发奇想,既然 index 文件是二进制文件,如何查看它的内容呢,于是度娘一番,
git ls-files --stage 可以查看 index 保存的文件索引的内容,既然可以查看内容,
那么 index 中 有没有过滤设定呢?
重点来了,参考博客,执行 git ls-files -v 竟然真的可以看到 那个文件有 h 标记,其他正常追踪的文件是 H 标记。
git update-index –assume-unchanged –path 可以忽略文件
git update-index –no-assume-unchanged –path 可以取消忽略文件
于是执行 git update-index -no-assume-unchanged [FILE_NAME]
终于,追踪到了文件的修改状态。(擦汗!!!)
参考博客:
[1]. git update-index --assume-unchanged 找出所有被忽略的文件的办法
git 填坑之 git 暂存区忽略文件的更多相关文章
- 小丁带你走进git的世界二-工作区暂存区分支
小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git init git clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...
- Git教程之工作区和暂存区(5)
工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
- 【Git】(1)---工作区、暂存区、版本库、远程仓库
工作区.暂存区.版本库.远程仓库 一.概念 1.四个工作区域 Git本地有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或 ...
- git教程:工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
- Git教程之工作区和暂存区
工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
- 版本控制Git(1)——理解暂存区
一.svn和Git的比较 我们都知道传统的源代码管理都是以服务器为中心的,每个开发者都直接连在中间服务器上, 本地修改,然后commit到svn服务器上.这种做法看似完美,但是有致命的缺陷. 1. 开 ...
- git学习笔记 ---工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
- Git学习(三)——暂存区、远程仓库、增删改管理
一.工作区和暂存区 工作区(Working Directory) 就是在你的电脑里能看到的目录 版本库(Repository) 工作区中的一个隐藏目录.git,这个不算工作区,而是Git版本库.Git ...
- Git学习02 --暂存区,撤销修改,删除文件
工作区和暂存区概念: 工作区(Working Directory)就是你在电脑里能看到的目录. 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Gi ...
随机推荐
- hdu 4741 Save Labman No.004 (异面直线的距离)
转载学习: #include <cstdio> #include <cstdlib> #include <cstring> #include <algorit ...
- (转)Expression 表达式树学习整理
原文地址:http://www.cnblogs.com/li-peng/p/3154381.html 整理了一下表达式树的一些东西,入门足够了 先从ConstantExpression 开始一步一步的 ...
- C# 取得内网IP、外网IP、客户端IP方法
前言 在 Windows Form Application 里对于取得 IP Address 有内网.外网两种 IP Address ,如果只需要取得内网 IP Address ,可以透过使用 IPH ...
- 常用Linux命令:mount/umount/blkid
一.mount:挂载命令 1.命令格式 mount [参数] [设备名称] [挂载点] 2.常用参数 -a :安装在/etc/fstab文件中列出的所有文件系统 -f :伪装mount,做出检 ...
- MongoDB整理笔记のCapped Collection
1.简单介绍 capped collections 是性能出色的有着固定大小的集合,以LRU(Least Recently Used 最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自 ...
- javaScript入门之常用事件
JS中的常用事件 onfocus/onblur:聚焦离焦事件,用于表单校验的时候比较合适. onclick/ondblclick:鼠标单击和双击事件 onkeydown/onkeypress:搜索引擎 ...
- IdentityServer4实现单点登录统一认证
什么是单点登录统一认证:假如某公司旗下有10个网站(比如各种管理网站:人事系统啊,财务系统啊,业绩系统啊等),我是该公司一管理员或者用户,按照传统网站模式是这样:我打开A网站 输入账号密码 然后进入到 ...
- SpringMVC+Hibernate 项目开发之二 (STS整合Maven)
为什么用STS不用Eclipse,主要是Eclipse集成Maven把我整疯了,最后估计原因除在网速上了. 其实用了STS以后发现还真比Eclipse好用点. STS本身集成有Maven的,但是默认的 ...
- 如何使用 channel
如何使用 Channel 例子来自于Concurrency is not parallelism Google Search: A fake framework v1.0 var ( Web = fa ...
- cinder侧挂载卷流程分析
cinder侧挂载卷流程分析,存储类型以lvm+iscsi的方式为分析基础cinder侧主要调用了三个接口1)reserve_volume: 把volume的状态改为attaching,阻止其它节点执 ...