我们在项目中使用git。 git版本2.5.0 导致进一步混淆行为的原因是什么?
git@ip5server:~$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
app/addons/arliteks/
nothing added to commit but untracked files present (use "git add" to track)
git@ip5server:~$ git clean -dn
Would remove app/addons/arliteks/
Would remove design/
Would remove js/
Would remove var/langs/en/
为什么我在第一个命令中看不到所有4个目录?
答案 0 :(得分:2)
Git不跟踪目录,只跟踪文件。当您在git status
输出中看到一个目录时,它实际上是指该目录中的文件。一个奇怪的副作用是空目录永远不会显示在git status
中。当然,你不能git-add一个目录(好吧,你可以,但它会在目录中添加文件,而不是目录本身。)
但是当您执行git clean -dn
时,-d
选项意味着删除 untraked 目录。也就是说,里面没有跟踪文件的目录。
总而言之,您的第一个目录是非空的。其他三个都是空的。
答案 1 :(得分:0)
查看Capital X与较低x之间的差异:
git clean -Xfd // capital X
git clean -xfd // small x will remove all the
阅读有关此清洁命令的更多信息
-x
(小写)请勿使用标准的忽略规则从.gitignore读取 ...但仍然使用
-e
选项提供的忽略规则。这允许删除所有未跟踪的文件,包括构建产品。
可以使用它(可能与git reset一起使用)来创建一个pristine工作目录来测试干净的构建。
-X
(大写)
仅删除Git忽略的文件。
这可能有助于从头开始重建所有内容,但保留手动创建的文件。