git status->显示将在子目录中添加(暂存)的文件


88

假设我在一个文件夹中启动了一个git存储库,并且其中有几个子目录。

我有几种遍历模式.gitignore可以排除子目录中的文件。但是,当我git status 暂存任何内容之前执行操作时,git status仅显示要添加的子文件夹的名称,而没有具体说明如果执行此操作,则将添加(暂存)每个子目录中的哪些文件git add .

不过,有趣的是,我git status明确地介绍了在我暂存文件后将提交的文件git add .

无论如何,git status对于要暂存的文件,有没有要求明确地说明文件?

Answers:


147

尝试:

git status -u

或长格式:

git status --untracked-files

它将显示未跟踪目录中的单个文件。

这是git-status手册页-uoption的详细描述:

-u[<mode>]
--untracked-files[=<mode>]

显示未跟踪的文件。

mode参数是可选的(默认为all),用于指定未跟踪文件的处理;当-u不使用时,默认为normal,即表明未跟踪文件和目录。

可能的选项是:

  • no -不显示未跟踪的文件
  • normal -显示未跟踪的文件和目录
  • all -还显示未跟踪目录中的单个文件。

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


9

您可以简单地使用

git add --dry-run .

在存储库的根目录中,它提供了在考虑时将添加的任何子目录中任何文件的列表.gitignore



1

如何将.gitignore文件放在子目录中而不是沿着

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3

我没有任何.gitignore看起来像您发布的内容(即忽略带有例外的目录或子目录)。另外,为什么会这样呢?顺便说一句,git status返回将正确地提交的文件列表分期后git add .
2012年

1
我知道你不知道 从根目录中删除目录,.gitignore并将其添加到.gitignore子目录中-您可以有多个目录。他们筑巢
Adrian Cornish 2012年

-1

使用git命令git ls-files -o列出未跟踪的文件

-o use -c --cached在输出中显示缓存的文件(默认)

-d --deleted在输出中显示已删除的文件

-m --modified在输出中显示修改后的文件


此问题特定于显示在添加.gitignore时要添加哪些文件。您的答案将忽略.gitignore。
贾里德(Jared)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.