.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,
这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。

解决方法: git清除本地缓存(改变成未track状态),然后再提交:
[root@kevin ~]# git rm -r --cached .
[root@kevin ~]# git add .
[root@kevin ~]# git commit -m ‘update .gitignore’
[root@kevin ~]# git push -u origin master

需要特别注意的是:
1).gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
2)想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,
对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。

第二种方法:(推荐)
在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
[root@kevin ~]# git update-index --assume-unchanged PATH //在PATH处输入要忽略的文件

在使用.gitignore文件后如何删除远程仓库中以前上传的此类文件而保留本地文件
在使用git和github的时候,之前没有写.gitignore文件,就上传了一些没有必要的文件,在添加了.gitignore文件后,就想删除远程仓库中的文件却想保存本地的文件。这时候不可以直接使用"git rm directory",这样会删除本地仓库的文件。可以使用"git rm -r –cached directory"来删除缓冲,然后进行"commit"和"push",这样会发现远程仓库中的不必要文件就被删除了,以后可以直接使用"git add -A"来添加修改的内容,上传的文件就会受到.gitignore文件的内容约束。

额外说明:git库所在的文件夹中的文件大致有4种状态

Untracked:

未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

Unmodify:
文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改,
而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

Modified:
文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态,
使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

Staged:
暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态.
执行git reset HEAD filename取消暂存, 文件状态为Modified

Git 状态 untracked 和 not staged的区别
1)untrack 表示是新文件,没有被add过,是为跟踪的意思。
2)not staged 表示add过的文件,即跟踪文件,再次修改没有add,就是没有暂存的意思

.gitignore不生效,不忽略相关推荐

  1. .gitignore 不生效的解决方案

    .gitignore文件的使用方法 首先,在工作区新建一个名称为.gitignore的文件. 然后,把要忽略的文件名填进去,Git就会自动忽略这些文件.在项目的根目录下建立一个隐藏文件 .gitign ...

  2. git小技巧之分支、关联远程仓库、回滚、解决.gitignore不生效等

    1.分支管理 新建并切换分支:git checkout -b <name>新建本地分支并关联到远程分支git checkout -b myRelease origin/Release合并某 ...

  3. Git 修改.gitignore如何生效?

    对于".gitignore"文件(位于项目根目录),我认为这是保证代码轻量化的重要工具,你可以把一些"不是很重要的文件"忽略掉.那什么是不重要的文件呢?比如C语 ...

  4. gitignore 文件生效办法

    .gitignore 可以添加一些不加入git版本控制的文件 比如一些测试文件.因人而异的配置信息等等 .gitignore 文件展示如下 /.idea/target//.classpath /.pr ...

  5. .gitignore中添加了忽略规则为何还是会提示版本更新,git如何清除部分文件的版本管理

    某些文件,如java编译后的/target/class目录下的文件,*.iml文件等都是不需要上传到github的,这些文件可能随时都在变化,管理版本是没有意义的. 在.gitignore文件中可以制 ...

  6. 彻底解决TortoiseGit中.gitignore文件失效,忽略文件失效原因及解决办法

    我更新了我的 .gitignore 文件,现在我想更新索引. 我想执行 git rm --cached 命令.但是我该怎么做TortoiseGit? 答案是: 右键单击该文件,选择TortoiseGi ...

  7. [转]Git忽略提交规则 - .gitignore配置运维总结

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.简单来说一个场景:在你使用git add .的时候,遇到 ...

  8. git如何忽略已经提交的文件 (.gitignore文件无效)

    一. 问题 在初始化git仓库的时候没有创建.gitignore文件来过滤不必要提交的文件, 后来却发现某些文件不需要提交, 但是这些文件已经被提交了, 这时候创建.gitignore文件忽略这些文件 ...

  9. git 忽略文件 .gitignore 以及规则

    git提供了文件忽略系统,当对工作区某个目录或文件设置了忽略后,在执行status查看状态时,被忽略的文件即使存在也不会显示出来. 这样我就可以把那些不需要上传,不需要保留的文件或目录忽略掉(比如一些 ...

最新文章

  1. Leetcode | Maximal Rectangle
  2. 【转】C++的面象对象总结
  3. php图片滑动代码,jQuery如何实现图片滑动效果
  4. Android中的基础控件CheckBox、RadioButton、ToggleButton、SeekBar
  5. 给select设置默认值,在option在页面上已经写死的情况下
  6. Tree Constructer
  7. 美国哪些专业最赚钱?从489个大学专业中替你挑出薪资最高的50名!
  8. 9008刷机怎么刷_手机刷机怎么刷
  9. java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder
  10. V-最大公约数 递归
  11. html js 读取资源文件,javascript如何读取文件?
  12. python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息
  13. html如何控制plc,PLC系统是如何控制数控机床的
  14. 详细解读 SQL 窗口函数
  15. 【centos6.5】安装LNMP(linux公社)
  16. 区块链学习笔记(2)难度整定,区块形成,区块体,Merkle树,Merkle Proof默克尔证明
  17. 低功耗蓝牙开发入门概念科普
  18. 今天的收获---实现excel工资单的自动发送
  19. PWM整流器双闭环PI参数的整定
  20. 图瓦软件:AVEVA PDMS软件输出模型到Naviswork软件(带属性)

热门文章

  1. ELK部署+Elastalert
  2. linux卸载系统自带的openjdk,卸载Linux自带openjdk
  3. 视频教程|手把手教你做一款 3D 冒险闯关游戏
  4. Android 开关机POWER键 长按短按代码分析
  5. linux 忘记某网络,linux 常用网络命令
  6. U盘安装ubntu系统
  7. FANUC机器人INTP-250或251用户坐标系或工具坐标系与示教资料不符报警的处理办法
  8. 2021软件测试还有前景吗?
  9. 广义线性模型是什么?
  10. □ 影片名:《我的野蛮女友》(108579) 在线播放