#git-repository #gitignore #git #git-directory #ignore #clean

app git-nuke

快速从git仓库中移除所有被忽略的文件

3个不稳定版本

0.2.1 2024年7月8日
0.2.0 2024年7月8日
0.1.0 2024年3月21日

#6 in #ignore

26 每月下载量

MIT 协议

16KB
338 代码行(不含注释)

git-nuke

什么是?

git-nuke 是一个Rust二进制程序,旨在为Windows提供一个更可靠的 git clean -dXf 版本,尽管它可能对其他平台也有用。

如何使用?

使用 cargo install git-nuke 安装,并通过 git nuke 命令运行,指定要清理的目录,默认为当前目录。

如果目录不是git工作目录的根目录,git-nuke 将查找git根目录,并像git一样包含父目录的 .gitignore 文件,但只会移除在提供的目录内的目录,除非提供了 -a / --all

它也不会移除git索引中的文件,除非提供了 -/ --ignore-index。很可能它不能正确解析所有各种索引版本,特别是

  • git索引格式4使用的一种路径差异形式目前尚不支持
  • 配置启用SHA-256校验和(extensions.objectFormat)也尚未支持,因为配置解析尚未实现

目前,git不会默认创建这些格式,所以这不应该是一个大问题。

为什么?

git clean -dXf 将清除git工作目录中的所有被忽略的文件,将其恢复到干净状态。不幸的是,它还不理解Windows的目录符号链接,所以在使用它们作为依赖项引用本地代码的monorepos /工作空间中,git clean -dXf 有时会删除源代码!

它还非常慢(至少在Windows上是这样),在大型的仓库中可能会使用几GB的内存,而Rust使修复变得非常简单。

由于添加它非常容易,我还加入了显示移除目录进度指示器的功能。这里可能还有很多改进空间...

依赖

~7–16MB
~203K SLoC