烦人的中间文件

今天介绍一个很有用的命令 git clean.
这个命令用来从工作目录删除untracked的文件。这些文件主要来大型项目的,

  1. 自编译生成的中间文件或者目标文件,或者是
  2. auto-code生成文件
  3. 其他自动生成文件

如果整个项目的结构和build设计的比较好,那么这些文件比较集中,手动删除也无妨。但很多时候,这些经常超出我们的控制范围(如第三方工具的auto code等等,不可描述),会造成大量文件揉在一起,删起来好烦。

下边是我本地的一个例子,这个例子中的垃圾文件是随便拷过来

PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git st
On branch master
Your branch is up to date with 'origin/master'.Untracked files:(use "git add <file>..." to include in what will be committed)ALL_BUILD.vcxproj.filtersALL_BUILD.vcxproj.userCMakeCache.txtZERO_CHECK.vcxprojZERO_CHECK.vcxproj.filtersbin/cmake_install.cmaketoRnxApp.slntoRnxApp.vcxprojtoRnxApp.vcxproj.filterstoRnxApp.vcxproj.userver.hnothing added to commit but untracked files present (use "git add" to track)

怎么办

正如上边说的,有这么几种处理方式,

  1. 置之不理,就放那也无妨
  2. 当然我们可以把这些玩意儿加到.gitignore里,这样使用git status时眼不见心不烦
  3. 手动删,大多数情况下,如果项目及工具都是我们自己的,那么这些文件会几种在个别一个或者几个目录下,删起来一点儿都不费劲
  4. 使用神器git clean

git clean

  1. 对上边的这个恼人的例子,我们用一下git clean
PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git clean
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean
  1. 看来要执行git clean -f
PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git clean -f
Removing ALL_BUILD.vcxproj.filters
Removing ALL_BUILD.vcxproj.user
Removing CMakeCache.txt
Removing ZERO_CHECK.vcxproj
Removing ZERO_CHECK.vcxproj.filters
Removing cmake_install.cmake
Removing toRnxApp.sln
Removing toRnxApp.vcxproj
Removing toRnxApp.vcxproj.filters
Removing toRnxApp.vcxproj.user
Removing ver.h
  1. git status -s看一下
PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git st -s
?? bin/

原来在没有指定目标路径的情况下,git clean默认不进行递归删除,除非我们用到以下命令
4. git clean -f -d

PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git clean -f -d
Removing bin/.vs/
Removing bin/ALL_BUILD.vcxproj
Removing bin/ALL_BUILD.vcxproj.filters
Removing bin/ALL_BUILD.vcxproj.user
Removing bin/CMakeCache.txt
Removing bin/CMakeFiles/2e8c9321d4a2a009a8d065bedeacf3ef/
Removing bin/CMakeFiles/3.17.0-rc2/CMakeCCompiler.cmake
  1. 这下干净了
PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git st -s
PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim>

当然可以用交互模式,

PS F:\1-own\0-code\0alforithmCode\gnss-sdr-sim\gps-sdr-sim> git clean -f -d -i
Would remove the following items:ALL_BUILD.vcxproj.user      toRnxApp.slnCMakeCache.txt              toRnxApp.vcxprojZERO_CHECK.vcxproj          toRnxApp.vcxproj.filtersZERO_CHECK.vcxproj.filters  toRnxApp.vcxproj.usercmake_install.cmake         ver.h
*** Commands ***1: clean                2: filter by pattern    3: select by numbers4: ask each             5: quit                 6: help
What now>

这样,如果我们输入4,那么将会对每个文件确认然后删除或不删除。

另外,如果使用的命令是git clean -df是无法删除.gitignore中设置的ignore掉的文件的,若想一起删除其中的文件,需要加个x,也就是使用下边的命令,
git clean -dfx
或者,
git clean -d -f -x
注意这里的x是小写,如果使用X,即大写的X,那么仅仅会clean掉ignore掉的文件,但是其他文件会保留。

神器 git clean相关推荐

  1. git clean和git reset结合用法

    git clean命令用来从你的工作目录中删除所有没有tracked过的文件 git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以需 ...

  2. git 删除已add的文件夹_如何删除还没有被add到git的文件(git clean的用法)

    如何删除还没有被add到git的文件(git clean的用法) git clean命令用来从你的工作目录中删除所有没有tracked过的文件 git clean经常和git reset --hard ...

  3. Git:clean用法

    git clean用法 想批量删除branch中新加的文件(untracked files),,git reset --hard不行- 首先确认要删除的文件 git clean -fd -n 如果以上 ...

  4. Git:clean的用法

    git clean用法 想批量删除branch中新加的文件(untracked files),,git reset --hard不行- 首先确认要删除的文件 git clean -fd -n 如果以上 ...

  5. git reset, git status, git clean, .gitignore, git diff, git restore 的关系梳理

    当进入装有git的目录里,创建一文件,如 $touch test.txt 这时候,运行git status,就会发现这个文件出现在untracked files中 $git status On bra ...

  6. 清理工作区git clean -fd

    这是一个常用的命令,用来移除工作区中的 untracked files . git clean -fd f强制删除(一定要加,除非你的.gitconfig文件中配置了 clean.requireFor ...

  7. git clean -fd 命令删除文件之后 项目工程文件恢复

    今天提交代码不小心 执行了git clean -fd 命令,发现文件全被删除了 一般git clean -fd 执行文件就直接被删除了: 本人系统:win10 恢复办法一:系统回收站恢复 恢复办法二: ...

  8. Git 命令之Git clean

    开篇点题 git clean命令用来从你的工作目录中删除所有没有tracked过的文件 git clean -n  不会删除,只是Notification,提醒      2. git clean - ...

  9. git clean 命令详解

    1. git clean 介绍 2. git clean 使用 3. clean 和 reset 命令 1. git clean 介绍 git clean 命令用于删除工作目录中没有被 tracked ...

  10. 使用git checkout和git clean来还原/清除文件

    git checkout and clean summary git checkout git clean git checkout git checkout . //清除工作区所有还没有add的文件 ...

最新文章

  1. 数据分析系列:完善统计图(matplotlib)
  2. 楼市调控要“围堵”更要“疏通”
  3. tensorflow实现手写数字识别(MNIST)
  4. @RequestBody如何使用
  5. 完善vim bccalc_linux插件
  6. 分区表理论解析(上):SQL Server 2k52k8系列(一)
  7. 计算机硬盘满了怎么解决,使用SSD硬盘空间清理 C盘爆满怎么办
  8. Mybatis-学习笔记(3)mapper配置文件
  9. php正则判断括号中的,PHP实现正则匹配所有括号中的内容
  10. 海康rtsp视频流直播-kurento
  11. 网络流四种主流算法时间复杂度分析
  12. 【Java实例】随机数比较大小
  13. html学习 - 检测浏览器是否支持Canvas
  14. LinuxTerminal_HotKey
  15. Java-MVC模式
  16. 云原生背景运维转型之SRE实践
  17. 如何在直播中解决黑屏、花屏、闪屏问题 | 直播疑难杂症排查
  18. 爱思国际获戈壁创投数百万美元Pre-A 轮融资,意做菲律宾的分众传媒...
  19. 液压比例阀放大器比例控制器比例阀放大板
  20. NLP:MRC常用数据集

热门文章

  1. Unable to launch WebDriverAgent because of xcodebuild failure: “iproxy exited with code ‘234‘“
  2. 中国未来5年最“吃香”的4大行业,市场需求大,堪比铁饭碗!
  3. ubuntu18.04安装dash-to-dock出错的问题
  4. 中小板企业上市要走哪些流程
  5. IBM X3650 安装ESXi 5.1u2 需要更改BIOS缺省设置
  6. 几何平均数,代数平均数: 调和是什么意思,调和平均数 点火公式 平面曲线弧长(代数方程,参数方程,极坐标方程) 旋转曲面面积 旋转体体积 拉格朗日乘数法求最值;
  7. java 斑马 打印不出来_通过PrintServer将原始ZPL发送到Zebra打印机不起作用
  8. 阿里云对象存储OSS怎么收费?
  9. 如何将高程数据转成南方CASS的DAT格式
  10. 计算机系统变慢的原因,计算机系统运行速度变慢4大原因