1、问题:git 使用git checkout -- . 没有效果
解决:两种方法获得git仓:
git init 和 git clone,这两个命令之后新加的文件(包括文件夹)都是未纳入git仓管理的,此时git st的状态是:Untracked files,需要手动git add才能纳入git仓,否则git还不受控制了呢。
对于这样的新加入工作目录的文件,反向操作有专门的命令:git clean -fd。可用man git clean查看命令说明。
git clean用法
git clean用法
想批量删除branch中新加的文件(untracked files),,git reset --hard不行~
首先确认要删除的文件
git clean -fd -n
如果以上命令给出的文件列表是你想删除的, 那么接下来执行
git clean -f -d或者git clean -fd就可以了。
其中-f表示文件 -d表示目录, 如果还要删除.gitignore中的文件那么再加上-x (-x对我来说没用)
如果git submodule中也存在需要删除的文件那么需要再加个-f, 变成git clean -dff
详见:http://stackoverflow.com/questions/61212/how-do-i-remove-local-untracked-files-from-my-current-git-branch
git删除未跟踪文件
# 删除 untracked files
git clean -f
# 连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd