git无法ignore文件

情景描述

  • 我们创建了一个project,并且将project全部push到了远端。
  • 此时突然发现自己把.idea类似于这样的文件都push到了远端,赶紧创建.gitignore文件
  • 将对应路径下的文件加入到.gitignore,然后将.idea直接添加到.gitignore
  • 然后发现问题:
    • 在IDEA中.idea没有变灰(这个是否变灰一般是我用判断文件是否被ignore的标准,这个我后面要自我检讨)
    • 提交新改变的.gitignore文件后发现远端还是有.idea,但是在IDEA中看到这个文件已经变灰了
    • 好在现在你再向.idea文件中添加东西已经不会出现在被untracked的提示中了
    • .idea仍然还躺在git仓库中
    • 修改已经提交到仓库中的.idea中的文件当你gst的时候,仍然发下modify出现在Changes not staged for commit的提示中

思路梳理

以下是我通过自己验证之后的结论:

  • 已经提交到远端的代码已经没有办法被ignore,但是如果在这之后,ignore这个文件夹,其中的新创建的文件是不会提交的远端的。
  • 在ignore之前提交到远端的文件,ignore之后如果对他修改,git依旧会追踪,这就是我们经常发现的:.gitignore中明明添加了某个文件,但是他的修改git依旧追踪,如同.gitignore无法ignore它的原因。

  • Q1:那么我想要将已经提交的远端的文件ignore掉,该用什么办法呢?
  • A1:可以采用git rm的方法,使用git rm --cached <文件名>或者git rm -r --cached <文件夹名>然后提交你的rm修改,就可以发现远端没有这个文件了

反思

  • 之前对文件是否.gitignore某个文件的判断依据就是这个文件/文件夹是否变灰了,这是个大禁忌,能够变灰是IDEA中git插件中提供的功能,如果没有插件了,这并不能作为判断依据。我们要做的是看本质并不是现象,这里的本质是他有没有达到我想让他有的功能,比如:新创建的文件不会提交repo、修改的文件不会被监控等等,而不是光看文件颜色。但是在这里没有变灰色的原因:我猜想是因为你在.gitignore添加了这个文件之后还没提交修改,一旦将修改push远端,颜色立刻就会改变(?是否变灰是IDEA提供的功能,因此该功能受到IDEA监控,因此添加文件后,IDEA本身没有及时更新也会出现这样的问题,因此颜色判断一定是最差的判断方式)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 昨天在同事电脑上操作了一把cherry-pick代码,发现很多功能不用,就慢慢忘记了,梳理了下流程图: git c...
    gogoingmonkey阅读 3,957评论 0 0
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 10,414评论 0 9
  • 咏唐诗,吟汉史。笑看风云,百世雷霆子。一卷汗青三卷志。雾里明灯,只照蹉跎辈。 叹商周,思赵魏。点数江山,万古抛头士...
    深蓝色木鱼阅读 1,846评论 9 10
  • 是夜,三更惊醒,复睡,恍惚中置身某所,众人皆井然列座。间有同学诸人。人声嘈杂,身后一女缓步而来,以手拍吾肩,曰:“...
    青简书阅读 1,810评论 0 1
  • 记得曾去过一个知名寺院,听方丈讲道时,谈到一事: “我对自己的弟子们有一点要求是极高的,就是要求...
    丁香的故事阅读 3,751评论 0 1

友情链接更多精彩内容