Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Git控制文件夹中所有未版本文件的列表_Git_Bash_Unix_Version Control_Grep - Fatal编程技术网

获取Git控制文件夹中所有未版本文件的列表

获取Git控制文件夹中所有未版本文件的列表,git,bash,unix,version-control,grep,Git,Bash,Unix,Version Control,Grep,在Git控制的文件夹中获取未版本文件的列表比需要的要烦人得多。除非我真的不擅长阅读手册页,否则看起来Git并没有提供一个单独执行此操作的工具 也许有一种更优雅的方式来完成这项任务,但我为这项任务准备了一行代码,以防其他人需要使用 编辑:事实证明,有一种标准方法可以很好地实现这一点 git ls-files --other [--exclude-standard] diff或 如果不想看到被忽略的文件 git clean -dn | cut -c 14- 实际上,如果将git clean与-n

在Git控制的文件夹中获取未版本文件的列表比需要的要烦人得多。除非我真的不擅长阅读手册页,否则看起来Git并没有提供一个单独执行此操作的工具

也许有一种更优雅的方式来完成这项任务,但我为这项任务准备了一行代码,以防其他人需要使用

编辑:事实证明,有一种标准方法可以很好地实现这一点

git ls-files --other [--exclude-standard]
diff或

如果不想看到被忽略的文件

git clean -dn | cut -c 14-

实际上,如果将
git clean
-n
--dry run
选项一起使用,它将打印出一个未跟踪的文件列表,如果您使用
-f
--force
选项运行,它将删除这些文件。添加
-d
标志包括空目录或仅包含未跟踪文件的目录

因此,您可以在git存储库中运行此命令:

$ git clean -dn
并获得如下输出:

Would remove dir/untracked_file_1.txt
Would remove untracked_file_2.txt

这里还有一个好处:它也尊重你的.gitignore文件,不过如果你添加
-X
标志,它将只列出被忽略的文件。

这将列出子模块中的所有文件,包括版本控制的文件。哦,这也将列出
.git
目录中的所有文件。你不想这样。@RyanLester:如果我们想学究式地对待它,那行将无法列出一个名为“will remove”的文件,如果这样的文件存在并且没有被跟踪的话。除非你是认真的,否则不要使用
g
。啊,对了,谢谢(默认情况下,我有一个附加
g
的坏习惯)。这并不意味着要学究气,而是更重要的是要给别人留下一些东西来复制和粘贴。删除我的原始评论,以防止错误代码的意外复制;正确版本:
git clean-dnx | sed's/将删除//”
。更新:我的谷歌浏览器需要一些工作;本例中最好的关键字是“untracked”,而不是“unversioned”。有关正确的解决方案,请参见正文。@sedulam:The
|
称为“pipe”,它将左命令的输出作为右命令的输入。
cut
命令与Git无关。如何删除未跟踪的文件
git clean-f
不起作用。@Timo
-d
用于删除<代码>-n
用于干运行。因此,省略
-n
,或者添加
-f
,文件就应该消失了。@tnt,谢谢。小心,
d
是目录,请参阅平台的答案
git ls文件-其他[--exclude standard]
cygwin和zsh中不起作用,以防有人使用它。
$ git clean -dn
Would remove dir/untracked_file_1.txt
Would remove untracked_file_2.txt