转载|git clean清理工作区,移除Untracked文件

git clean的作用是删除工作目录中尚未添加到git版本控制的文件或目录。

未添加到版本控制,且不在.gitignore中的,都是Untracked的状态。

有时候我们在项目中添加了些文件、目录测试了一把,测试完成后想把它们删了。

有时候则是执行回滚后,有些文件或目录回滚到了Untracked状态,我们需要把它们删掉。

这时候就可以使用git clean。

git clean的用法:

usage: git clean [-d] [-f] [-n] [-q] [-x | -X] [--] <paths>...
 
-q, --quiet      be quiet(静默删除,只会告诉你出错信息。如果是成功删除了文件或目录则保持沉默)
-n, --dry-run    dry run(告诉你会被删除的文件或目录有哪些,删除文件毕竟是一件严肃的事,在执行该命令前请务必加上该参数先确定下)
-f, --force      force(强制删除,clean.requireForce默认的值是true。这种情况下只有加上该参数才能删除)
-d               remove whole directories(删除的范围是整个目录)
-x               remove ignored files, too(即使是被添加进gitignore的文件或目录也删掉。这里有坑,下面说~)
-X               remove only ignored files(只删除被添加进gitignore的文件或目录)

所以,在执行该命令前,务必先加上-n以检查一遍。否则删除后要找回来也是挺麻烦的事~

有坑:

不加上x参数,是不会删除被ignore的文件或目录的。但是~!!

如果你在.gitignore文件中对目录的描述是dir/*那么很抱歉,这个目录及里面的文件也会被清除掉。即使该目录的确是被git所忽略的。

所以,在.gitignore中对目录的描述最好是

dir1/
dir2

最后吐槽网上很多关于git clean的介绍(中文的)中,对-f参数的描述是file。但其实是force~

 

本文转载自 foam
原文链接:http://zoufeng.net/2016/08/05/git-clean/
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

推荐阅读
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值