如何删除远程仓库当中的class文件/target目录?(修改.gitignore文件不生效的解决方案) 20251138编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

如何删除远程仓库当中的class文件/target目录?(修改.gitignore文件不生效的解决方案)
Created by Marydon on 2023-09-26 16:43
说明:如果只是想删除远程仓库当中的target目录,直接看4.删除远程仓库的target目录。
1.情景展示
如上图所示,git项目在本地提交的时候,会多出很多无用的文件。
明明.gitignore文件当中有,或者.gitignore刚开始没有,我们把需要过滤掉(不需要提交)的文件增加了进去,但是却不生效。
怎么办?
2.具体分析
.gitignore文件生效的前提:必须位于项目的根目录下。
.gitignore 只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
由于新创建的文件已经出现在git本地仓库的缓存,所以.gitignore就失效了。
解决办法就是:清空一下git仓库的缓存,重新提交一次就好了。
说明:.gitignore文件只适用于尚未跟踪的文件,所以,我们需要两大步骤。
第一:将不需要的提交的本地文件,搞成未追踪状态;
第二,更新.gtignore文件。
3.解决方案(太过啰嗦,建议直接看第6项)
准备工作:
第一,把本地仓库更新成最新内容;
第二,将本地代码提交到远程仓库。
说明:
运行git命令有两种方式,一种是在idea当中运行,另一种是通过git操作窗口运行。
在idea当中操作,经常会报错,不推荐使用。
在idea当中运行git命令
在idea当中,打开Terminal命令窗口,分步骤执行以下操作即可。
第一步:先把暂存区的文件删除(改变成未被追踪状态)。
git rm -r --cached .
等待执行结束,项目当中所有文件,将被从本地仓库缓存区移除。
所有文件的状态,都将变成:新增文件且未提交状态。
第二步:本地添加或者修改正确的.gitignore文件。
示例
#忽略所有target目录 target/ #忽略行尾结束符变化(CRLF与LF) .gitattributes #日志 *.log ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### Eclipse ### .classpath .project .settings
第三步:将本地所有文件添加到本地缓存区。
git add .
如果不出意外的话,所有文件将会被添加到本地仓库当中。
如出现上述报错信息:
warning: LF will be replaced by CRLF in dc/assembly/dc-boot/target/maven-status/maven-compiler-plugin/compile/java-compile/createdFiles.lst.
The file will have its original line endings in your working directory
解决办法如下:
git config --global core.autocrlf false
在Terminal命令窗口输入以上命令,按Enter键回车运行。
说明:
如果出现上述关于“行分割符”的警告信息,可以忽略不管,它这是提示的是要忽略的文件所用的行分隔符会被替换成CRLF。
再次执行git add .命令。
命令执行结束,所有文件,都将变成已修改状态。
说明:
第二步和三步如果颠倒的话,会导致.gitignore文件增加到缓存当中的不是最新内容,进而导致第4步提交失败。
出现这种情况,需要我们再次执行一下:git add .,就可以了(然后再次执行第四步操作)。
第四步:提交更新后的.gitignore文件。
git commit -m 'update .gitignore'
说明: -m指令是提交说明,后面跟的是:此次提交内容的说明(备注)。
正常情况下,运行此命令是没有问题的。
如出现以上错误:
error: pathspec '.gitignore'' did not match any file(s) known to git
解决办法如下:
通过git-bash.exe运行git命令(推荐使用)
找到本地git的安装目录,双击运行git-bash.exe。
切换到此项目所在目录。
说明:路径不能使用反斜杠\。
错误示例:D:\workspace-idea\dc
正确示例:cd d:/workspace-idea/dc
重复上述操作步骤。
第一步就报错,这意思是:.gitignore文件已经被放进缓存区,需要强制移除。
用以下命令代替:
git rm -r -f --cached .
执行第二步(修改.gitignore文件)。
执行第三步。
执行第四步。
等待操作结束即可。(会展示更新多少个文件,新增多少,删除多少)
此时,返回idea。
选中当前项目名,点击提交,来到提交视图。
这次,本地将再无需要提交的文件了(真清爽!)。
执行第五步
git push
网上只有前4步。
执行完第4步只是本地仓库有效,然而,远程仓库,别人在提交代码时,仍然会出现一坨乱七八糟的文件。
如果想要远程仓库也生效,我们需要将其进行推送。
回车运行。
依次输入用户名和密码。
最终结果示例:
说明:
给.gitignore文件新增内容时,通常需要过滤的文件内容已经被纳入到版本管理当中。
所以说,一般情况下,当我们需要新增过滤条件时,就会需要重述上述操作步骤。
另外,小组其它成员也需要更新一下项目,才会在本地生效。
4.删除远程仓库的target目录
当我对项目进行clean,compile之后,发现:
这一坨代码又出现了。
怎么办?
从这里就可以判断:远程资源库存在target目录
登上远程仓库,发现项目当中存在target目录,怎么办?
清空target目录
打开maven视图,找到带(root)的模块。
通过clean,清除项目当中的target目录。
这样一来,项目当中的target目录都被删除啦。
然后,将其提交到远程仓库上。
选中项目名,点击提交。
切换到提交视图,点击“Commit And Push”。
然后,对项目进行重新编译。
这时,项目将会重新生成target目录,并且,编译好的文件,将被重新放到target目录下。
然后我们重新点击提交。
此时,正常情况下,提交的视图,应该没有任何target目录下的文件。
如果出现下图情况,那就没办法了。
但是,这些文件又出现了,只不过这次是出现在:Unversioned Files目录下。
最终,还是没能解决。
清空远程仓库的target目录后,本地的target目录就变成了未追踪状态。
还是没有解决,怎么办?
还有一种可能就是项目原先存在的.gitignore文件有问题。
打开文本编辑器,将过滤规则复制到新建文本当中。
将文件字符集设置成UTF-8,文件名保存为:.gitignore。
然后将其复制到项目根目录下。
直接点击工具栏的提交按钮。
切换到提交视图。
如果该项目当前提交的文件只有这一个,那就说明这个文件起作用啦。
搞了一天的问题终于解决了,以后,再提交代码的时候,终于不再出现target目录下面的文件啦。
双击打开,我看到之所以远程仓库上的.gitignore文件之所以不生效,是因为:文件字符集有问题,可能导致git无法识别。
最后,我们把这个文件推送到远程仓库就可以啦。
到这,基本上都能解决啦。
当然,如果还是无法解决的话,那就无能为力了。
如果在提交代码的时候,不想看到这些烦人的target目录,只能把target目录clean掉,再提交;
提交完,再手动重新编译项目,生成class文件。
说明:被.gitignore文件忽略的内容,在idea当中,被过滤掉的文件名会变色。
如下图所示。
5.拓展
如果判断.gitignore文件的字符集是否有问题?
方式一(太笨了,不推荐使用)
切换到Terminal窗口,输入以下指令。
git echo test >> .gitignore
意思是:
在.gitignore文件当中追加内容:test。
正常情况下,是没有问题的。
(需要先刷新文件)
如果.gitignore文件字符集有问题,test有可能将会变成乱码。
(需要先刷新文件)
这也就是说:git根本无法正确解析.gitignore文件当中的内容,这样一来,里面定义的过滤(提交时要忽略的内容)规则,自然无法生效。
方式二:使用notepad++打开
.gitignore文件过滤规则说明
如果只需过滤掉.idea目录下的shelf目录,过滤规则为:
.idea/shelf/
如果过滤规则为:.idea,它将会忽略.idea目录及目录下所有内容。
2024年1月15日17:21:38
如何忽略iml文件的提交?
同样地,按照target目录的思路走。
第一步,将本地所有的iml文件删掉。
第二步,将其操作更新值远程仓库。
此时,远程仓库当中,已经不存在iml文件啦。
第三步,撤销本地iml文件的删除操作。
第四步,将*.iml添加到.gitignore文件当中,并将其提交至远程仓库。
第五步,在idea当中,运行命令:git rm -r --cached .。
此命令将会清空本地git缓存。
第六步,运行命令:git add .。
此命令将会所有文件添加到本地git缓存当中。
第七步:运行命令:git status。
如果出现没有需要提交的文件,就大功告成啦。
当然,如果还是出现需要提交iml文件
就需要重写一个.gitignore文件,将其覆盖掉该项目的此文件。
然后,重复第4步到第7步。
2024-08-13 16:14:49
6.修改.gitignore文件不生效的解决方案
第1步:确保.gitignore文件放置在项目的根目录下面。
如果根目录下面没有,请创建。
文件名为:.gitignore。
第2步:设置好过滤规则(要忽略提交的文件)
第3步:确定.gitignore文件的字符集为UTF-8
选中.gitignore文件,右键,打开于,选择“资源管理器”。
再次选中该文件,右键,打开方式,选择notepad。
打开之后,在窗口底部会显示该文件的字符集。
只要字符集不是UTF-8,鼠标悬浮其上,右键选择“UTF-8”即可完成字符集切换。
改完之后,保存。
第4步:更新项目
第5步:提交并推送.gitignore
说明:如果项目有修改的代码,最好和.gitignore分两次提交和推送。
第6步:清空文件缓存区。
打开终端窗口,执行以下命令。
git rm -r --cached .
按Enter键等待执行完毕。
第7步:将文件重新放置缓存区。
git add .
以上关于行分隔符的警告信息,不用管。
说明:
当我们将.gitignore文件提交后,需要更新本地缓存区的内容,否则,即使.gitignore文件已经提交,你的本地依旧会将需忽略的内容显示在提交窗口。
也就是说:第6步和第7步不能省略。
如果显示需要忽略的内容,请往下看。
第8步:
首先,确定忽略规则是否有效和.gitingore的内容变化已经推送至远程仓库;
其次,确定已经执行了第6步和第7步;
最后,如果要忽略提交的文件已经在远程仓库中存在,我们需要操作远程仓库,并将其删掉才可以。
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/17730451.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2017-09-26 javaWeb 批量下载图片
2017-09-26 base64编码
2017-09-26 css控制打印时只显示指定区域