3个不稳定版本
0.2.1 | 2024年7月8日 |
---|---|
0.2.0 | 2024年7月8日 |
0.1.0 | 2024年3月21日 |
#6 in #ignore
26 每月下载量
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