在将新文件复制到分支中之前,我希望删除当前目录的所有content ,但 .git/
folder除外。
对此linux命令是什么?
发布于 2014-03-12 17:47:29
重置索引的成本很低,因此
git rm -rf .
git clean -fxd
然后,您可以重置索引(使用git reset
),或者直接签出新的分支。
发布于 2014-03-12 09:13:19
使用查找和修剪选项。
find . -path ./.git -prune -o -exec rm -rf {} \; 2> /dev/null
编辑:两个目录.git
和dist
的
find . -path ./.git -prune -o \( \! -path ./dist \) -exec rm -rf {} \; 2> /dev/null
发布于 2014-03-12 09:04:05
正如蜡笔在评论中提到的,简单的解决方案是将.git移出目录,删除所有内容,然后再将其移回目录。但是如果你想用花哨的方式去做,find
会支持你的:
find -not -path "./.git/*" -not -name ".git" | grep git
find -not -path "./.git/*" -not -name ".git" -delete
我放在这里的第一行是因为在运行-delete
之前,对于find
,我总是想要仔细检查,以确保它找到了我认为的东西。
编辑:有一段脑筋急转弯,不是从我的终端拷贝过来的。
Edit2:增加-not -name ".git"
,防止删除.git
目录,并抑制错误。根据find
尝试删除内容的顺序,它可能会在非空目录上失败。
https://stackoverflow.com/questions/22339837
复制相似问题