如何删除所有未被跟踪的git文件/文件夹,除了被忽略的文件/文件夹?

时间:2014-11-19 09:04:43

标签: git gitignore

我确实看到了一些相关的问题,但我没有找到针对我的具体案例的解决方案。在我的情况下,我得到了一些未跟踪的文件和文件夹(不是git-ignored),以及.gitignore中声明的一些其他文件和文件夹。我想删除所有非git-ignored,未跟踪的文件和文件夹,并保留所有被git忽略的文件和文件夹。

如果我使用git clean -f,则未删除的文件将会消失,而文件夹仍会保留。如果运行git clean -df,git-ignored文件夹将与非git-ignored的文件夹一起删除。

我该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为您对git clean选项感到困惑。

  • git-clean -d清除目录和文件。
  • git-clean -x阻止git处理.gitignore
  • git-clean -X 删除被忽略的文件
  • git-clean -f只是一种强制选择。

因此git clean -df的默认行为是删除之外的文件和文件夹。这似乎是你要求的。

演示:

amb@nimrod-ubuntu:~/so/git$ mkdir tmp
amb@nimrod-ubuntu:~/so/git$ cd tmp
amb@nimrod-ubuntu:~/so/git/tmp$ git init
Initialized empty Git repository in /home/amb/so/git/tmp/.git/
amb@nimrod-ubuntu:~/so/git/tmp$ echo "foo" > bar
amb@nimrod-ubuntu:~/so/git/tmp$ mkdir baz
amb@nimrod-ubuntu:~/so/git/tmp$ echo "baz" > baz/bob
amb@nimrod-ubuntu:~/so/git/tmp$ echo "bar" > .gitignore
amb@nimrod-ubuntu:~/so/git/tmp$ echo "baz" >> .gitignore
amb@nimrod-ubuntu:~/so/git/tmp$ echo ".gitignore" >> .gitignore
amb@nimrod-ubuntu:~/so/git/tmp$ ls -la
total 24
drwxrwxr-x 4 amb amb 4096 Dec  3 08:13 .
drwxrwxr-x 3 amb amb 4096 Dec  3 08:12 ..
-rw-rw-r-- 1 amb amb    4 Dec  3 08:13 bar
drwxrwxr-x 2 amb amb 4096 Dec  3 08:13 baz
drwxrwxr-x 7 amb amb 4096 Dec  3 08:12 .git
-rw-rw-r-- 1 amb amb   19 Dec  3 08:14 .gitignore
amb@nimrod-ubuntu:~/so/git/tmp$ ls -la baz
total 12
drwxrwxr-x 2 amb amb 4096 Dec  3 08:13 .
drwxrwxr-x 4 amb amb 4096 Dec  3 08:13 ..
-rw-rw-r-- 1 amb amb    4 Dec  3 08:13 bob
amb@nimrod-ubuntu:~/so/git/tmp$ git clean -df
amb@nimrod-ubuntu:~/so/git/tmp$ ls -la
total 24
drwxrwxr-x 4 amb amb 4096 Dec  3 08:13 .
drwxrwxr-x 3 amb amb 4096 Dec  3 08:12 ..
-rw-rw-r-- 1 amb amb    4 Dec  3 08:13 bar
drwxrwxr-x 2 amb amb 4096 Dec  3 08:13 baz
drwxrwxr-x 7 amb amb 4096 Dec  3 08:12 .git
-rw-rw-r-- 1 amb amb   19 Dec  3 08:14 .gitignore
amb@nimrod-ubuntu:~/so/git/tmp$ ls -la baz
total 12
drwxrwxr-x 2 amb amb 4096 Dec  3 08:13 .
drwxrwxr-x 4 amb amb 4096 Dec  3 08:13 ..
-rw-rw-r-- 1 amb amb    4 Dec  3 08:13 bob