【问题标题】:What does it mean when git only shows a directory containing untracked files, but not the files themselves?当 git 只显示包含未跟踪文件的目录而不显示文件本身时,这是什么意思?
【发布时间】:2015-01-21 01:04:57
【问题描述】:

git 的相对新手,所以这可能是非常基本的东西。另一方面,我在询问之前搜索了很多这个答案。

在我的 git 存储库中,如果我在特定的子目录(比主存储库目录低几级)创建任何文件,并运行 git status,git 不会列出该目录中的文件,而只是列出其名称.

我原以为它与它向下的层数有关,但其他子目录中的其他未跟踪文件与相同层数(或更多)的距离没有任何问题。

有人知道某个文件中的某些设置或某些条目会导致这种行为吗?

【问题讨论】:

  • 试试git status -u --ignored。还要检查.gitignore 文件
  • 好吧,现在它已经停止这样做了 - 受影响文件夹中的文件现在被单独列出。据我所知,我没有对目录(除了添加/删除文件以试图弄清楚发生了什么)或我正在使用的任何命令进行任何更改。我猜只是一些随机的怪异。感谢大家的意见!
  • 你在用什么git --version?你可以检查你的.gitconfig,看看那里是否也有任何设置。
  • 版本为 1.9.1。 .gitconfig 中没有什么明显的东西——只有用户信息、各种工具的设置(merge、diff 等)和一些别名(我遇到这个问题时都没有使用)。

标签: git subdirectory git-status


【解决方案1】:

由于性能原因,默认情况下它不会显示未跟踪目录中的文件 - 它应该 ls 未跟踪目录,因为 git 没有为其内容编制索引。

来自git help status

-u[<mode>]

--untracked-files[=<mode>]

显示未跟踪的文件。

mode 参数是可选的(默认为all),用于指定对未跟踪文件的处理。

可能的选项是:

no - 不显示未跟踪的文件

normal - 显示未跟踪的文件和目录

all - 还显示未跟踪目录中的单个文件。

当不使用-u 选项时,将显示未跟踪的文件和目录(即与指定normal 相同),以帮助您避免忘记添加新创建的文件。因为在文件系统中查找未跟踪的文件需要额外的工作,所以这种模式在大型工作树中可能需要一些时间。您可以使用nogit status 更快地返回,而不会显示未跟踪的文件。

可以使用git-config(1) 中记录的status.showUntrackedFiles 配置变量更改默认值。

【讨论】:

  • 所以对于那些在家玩的人来说,更改为预期行为的命令的确切语法是git config --global status.showuntrackedfiles all
猜你喜欢
  • 1970-01-01
  • 2019-08-31
  • 2011-06-04
  • 2021-09-18
  • 1970-01-01
  • 2013-09-01
  • 2010-09-18
  • 2015-05-07
相关资源
最近更新 更多