不小心将.gitignore中标记忽略类型的文件提交到了远端仓库,可以试试git命令移除文件。归纳了一下,大概有以下几种情况:

问题分析

问题1:忽略指定类型的文件,或某个指定文件(夹)

问题2:将已经push到github的文件删除(从暂存区移除),但仍希望保留在当前工作目录中 (写.gitignore忽略规则之前就把这个文件夹push了)

问题3:将想要忽略掉的文件的相关记录(如下图) 清理掉(包括保留本地文件和不保留两种情况)

解决方法

问题1 :忽略指定类型的文件 或 某个指定文件(夹)

本地仓库忽略

本地仓库的文件忽略规则可以在 .git/info/exclude 文件中添加. 对当前这个仓库下的所有文件起作用。这些忽略的文件不会提交到共享库中, 因而不会被协作者所共享.。规则如下:

# 忽略所以名字以.o 或.a结尾的文件
*.[oa] # 跟踪所有的lib.a,即便在前面忽略了.a文件
!lib.a# 忽略所有名字以~结尾的文件
*~# 忽略所有名字以以.exe结尾的文件
*.exe# 忽略所有以 . 开头的文件
.* # 忽略test.cpp这个文件
test.cpp# 忽略 **根目录** 下的 test 文件夹里面所有的内容
/test/ # 忽略当前目录下的test文件夹,而不忽略sudir/test
test/ # 忽略任何目录下名字test的文件夹
test/ # 忽略test/notes.txt文件,但不忽略test/servers/arch.txt文件
test/*.txt # 忽略test/目录及其所有子目录下的.txt文件
test/**/*.txt

(更多规则可以参考shell的正则表达式)

当前工作目录添加文件忽略

对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录, 规则同上。

全局忽略

不需要在每一个仓库中添加 .gitignore 文件或者修改 exclude文件(毕竟在.git文件里乱动可能项目就没了), 只需要在用户账户文件夹下建立.gitignore_global文件就可以忽略我们想忽略的内容, 步骤如下:

  1. 在git bash下执行命令 git config --global core.excludesfile ~/.gitignore_global, 然后你会发现, ~/.gitconfig 文件里多了一行
  2. 创建 .gitignore_global 文件, 在里面写上规则就好了

问题2 :将已经push到github的文件删除, 但本地的文件不删除

git rm -r --cached .vscode # 将文件夹从暂存区中删除
git commit -m 'delete .vscode config' # 将修改后的暂存区合并到HEAD中
git push origin master # 推到远端


顺便复习一下查看暂存区命令 git ls-files


问题3 :将想要忽略掉的文件的相关记录清理掉

删除暂存区的文件, 同时删除本地的文件

git rm file_name # 删除本地文件, 同时也从暂存区中删除
git commit -m "delete" # 合并到HEAD中
git push origin master

提交删除记录

由于我已经手动将 .exe 文件删除, 所以只需要执行

git add -A
git commit -m "delete"
git push origin master

Reference List:

  • https://cwind.iteye.com/blog/1666646
  • http://gitbook.liuhui998.com/1_4.html
  • https://www.cnblogs.com/e206842/p/7121927.html
  • https://www.cnblogs.com/Cherry-B/p/4583505.html
  • https://www.jianshu.com/p/abca119649b5
  • https://www.runoob.com/manual/git-guide/

不小心将.gitignore中标记忽略类型的文件提交到了远端仓库,怎么办?相关推荐

  1. python pandas读取txt文件_python 读取文件夹中所有同类型的文件 并用pandas合并

    Linux 引导过程内幕 转载:http://www.ibm.com/developerworks/cn/linux/l-linuxboot/index.html   从主引导记录到第一个用户空间应用 ...

  2. git 忽略文件提交的几种姿势

    大家都知道 git 忽略文件提交可以通过 .gitignore 中进行配置.但是有时这个配置并不能满足自己的需求. 比如 package.json 中我修改了一些配置,但是这些配置只是适合我自己使用, ...

  3. 用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

  4. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

  5. Java listFiles查找指定类型的文件简单做法

    在Java中获取指定类型的文件,可以用带参数的listFiles的来实现 在网上搜了一些方法,几乎都是新建一个实现FilenameFilter或者FileFilter的类,然后把它作为listFile ...

  6. wpf中xaml的类型转换器与标记扩展

    wpf中xaml的类型转换器与标记扩展 原文:wpf中xaml的类型转换器与标记扩展 这篇来讲wpf控件属性的类型转换器 类型转换器 类型转换器在asp.net控件中已经有使用过了,由于wpf的界面是 ...

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

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

  8. Sourcetree软件中添加git的.gitignore文件忽略某些文件提交

    有时候我们本地的一些文件修改或变动不需要提交到远程git仓库,那么就可以设置提交时忽略这些文件,比如application.properties文件.log和.history文件夹下的文件等.在Sou ...

  9. 【WORD文档部分消失】元素结束标记中的名称必须与开始标记中的元素类型相匹配

    [WORD 出错无法打开]元素结束标记中的名称必须与开始标记中的元素类型相匹配_yezizhangxinya的博客-CSDN博客_元素结束标记中的名称必须与开始标记的元素类型相匹配使用工具 Rebui ...

  10. Git中的使用.gitignore忽略不想要提交的文件

    1. .gitignore的作用 在实际的工程项目中,除了项目本身的代码文件.配置文件外,还有一些文件或目录并不需要纳入版本管理中,如idea工具会在工程根目录生成一个.idea的目录.工程编译后生的 ...

最新文章

  1. pku2524-----Ubiquitous Religions(初次接触并查集)
  2. Incorrect line ending: found carriage return (\r) without corresponding newline (\n)错误的解决方案...
  3. javadoc 开源项目_在下一个项目中不使用JavaDoc的5大原因
  4. 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)...
  5. HTTP/2 in GO(二)
  6. Vue入门指南-05 Vue实例的生命周期(快速上手vue)
  7. asp向不同的用户发送信息_使用 Linux 命令行与其他用户进行通信 | Linux 中国
  8. 181231每日一句
  9. python绘制动态心电图_可穿戴设备中测心电图这样功能能达到医用标准吗?未来前景如何?在医用和便携之间是否还有市场?...
  10. 苹果怎么使用计算机,苹果系统电脑怎么用_超详细mac新手教程-win7之家
  11. Ubuntu 朗文不发音问题
  12. Python--第一天
  13. 《精通Tableau商业数据分析与可视化》之目录
  14. 喝酸奶竟然能预防霉菌性阴道炎
  15. html实现微信扫一扫,JS 实现微信扫一扫功能
  16. COVID-19 疫苗:在你接种疫苗之后
  17. 关于Coursera
  18. 台湾内存厂商进军NAND市场未果,时机已过仅当利基玩家?
  19. ORB-SLAM2 ---- ORBmatcher::SearchForTriangulation函数
  20. 饥荒服务器源文件位置,饥荒地上世界地下洞穴服务器的搭建

热门文章

  1. MyBatis源码阅读(二) --- 执行流程分析
  2. Web表单提交之disabled问题
  3. 加速与缓存技术之Varnish
  4. 2016-4-18 ICMPv6协议[RFC2463]--报文详解
  5. 《易学Python》——第1章 为何学习Python 1.1 学习编程
  6. 高性能 TCP UDP 通信框架 HP-Socket v3.3.1
  7. [转载] 高等应用数学问题的matlab求解——第4章 线性代数问题的计算机求解
  8. iOS code collection
  9. [JNI] 开发基础(1) c语言基本类型
  10. Luogu1005 矩阵取数游戏