如何列出Git工作副本中所有未版本化的文件和目录?

4
我正在虚拟机上进行开发,并希望知道在部署项目时需要手动添加哪些文件和目录到远程服务器的Web目录中(例如具有特定环境设置/凭据的文件)。如何获取这些文件/目录的列表?
3个回答

13
git ls-files -o

使用ls-files命令的-o选项可以显示未跟踪的文件。

如果您希望列出未跟踪的目录并将它们列为目录而不是所有单个文件,则可以执行以下操作:

git ls-files -o --directory

谢谢你的回答!git ls-files -o 显示所有未跟踪的文件,但不包括目录。是否有可能显示文件和目录?也就是说:如果我们有一个名为 foo 的目录,其中包含文件 barbaz,则应该显示 /foo 而不是 /foo/bar/foo/baz - automatix

7
git ls-files --others --exclude-standard
  • --others选项显示未跟踪的文件。

  • --exclude-standard选项排除了包含在gitignore.git/info/exclude中的文件。

请参阅git-ls-files


谢谢您的回复!该命令仅显示未跟踪目录中的文件。如何将未跟踪目录显示为每个目录的一个项目(如果我们有一个名为 foo 的目录,其中包含文件 barbaz,则应显示 /foo 而不是 /foo/bar/foo/baz),以及已跟踪目录中的未跟踪文件? - automatix
这段内容来自于 man git-ls-files: --directory 如果整个目录被归类为“其他”,则仅显示其名称(带有尾随斜杠),而不是其全部内容。因此,命令变成了:git ls-files --others --exclude-standard --directory - Sailesh
在已跟踪的目录中,未跟踪的文件会像正常文件一样显示,无需额外操作。 - Sailesh
我认为 git ls-files --others --directory 就是我一直在寻找的。 - automatix

1
git status -uall

这个命令将显示所有未跟踪的文件和目录,包括未跟踪目录中的未跟踪文件。使用-unormal来隐藏未跟踪目录中的未跟踪文件。

谢谢你的回复!该命令仅显示未跟踪目录中的文件。如何将未跟踪目录显示为每个目录的一个项目(如果我们有一个名为 foo 的目录,其中包含文件 barbaz,则应显示 /foo 而不是 /foo/bar/foo/baz),以及已跟踪目录中的未跟踪文件? - automatix
git status -unormal 仅会显示已追踪目录中未追踪的文件以及未追踪的目录。 - atenart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接