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

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

我使用了几种 globbing 模式 .gitignore来排除子目录中的文件。但是,当我执行 git status before I stage anything时,git 状态只显示将要添加的子文件夹的名称,而没有具体说明如果执行 git add .,每个子目录中的哪些文件将被添加(暂存)。

有趣的是,尽管 git status是明确的文件,这将是 坚定不移后,我阶段的文件与 git add .

是否有无论如何要求 git status明确的文件,这些文件将是 布置好的

45825 次浏览

如何将一个 .gitignore文件放在您的子目录,而不是沿着行

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

试试:

git status -u

或长格式:

git status --untracked-files

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

Here's the detailed description of -u option from Git-status 手册页:

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

显示未追踪的文件。

Mode 参数是可选的(缺省值为 all) ,用于指定对未跟踪文件的处理; 当不使用 -u时,默认值为 normal,即显示未跟踪文件和目录。

可能的选择是:

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

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

git ls-files -o --exclude-standard

工作树中每个未暂存(-o)且不会被 git add(--exclude-standard)忽略的路径。

你可以简单地使用

git add --dry-run .

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

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

而不是使用 C 缓存 在输出中显示缓存的文件(默认)

D 删除 在输出中显示已删除的文件

嗯 改良过的 在输出中显示修改过的文件

解决方案:

git config --global core.autocrlf true

但是不要只是运行这个命令,在执行之前进行验证。使用 git diff,如果大多数文件显示没有差异,那是由于行结束。好好利用。