- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
git-diff-files(1) 的文档说
Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B)...
但是,以下命令不显示添加的文件(不要在具有 origin
子目录的目录中运行它):
start=$PWD
origin="$start/origin"
rm -rf $origin
mkdir $origin
cd $origin
touch 1.txt
echo "2" > 2.txt
git init
git add -A
git commit -m "init"
echo "1" > 1.txt
rm 2.txt
echo "3" > 3.txt
git diff-files --diff-filter=ADM
输出如下:
$ git diff-files --diff-filter=ADM
:100644 100644 e69de... 0000... M 1.txt
:100644 000000 0cfbf... 0000... D 2.txt
git diff-files
从不显示添加的文件吗? diff-filter
选项表明它能够选择添加的文件。
最佳答案
事实上 git diff-files
永远不会显示添加的文件。
diff-files
命令显示索引和工作副本中的文件之间的差异。根据定义,尚未添加到索引(通过 git add
)的文件不会成为索引的一部分,因此不会出现在索引和工作副本之间的任何差异中。仅将文件添加到索引将使索引和工作副本中的文件相同,因此索引和工作副本之间不会有任何差异,因此也不会显示在 diff-files
中.修改工作副本中添加的文件将直接导致 M
状态。
文档显示所有可能的 --diff-filter
参数的原因是 diff 选项文档在所有采用 diff 选项的命令之间共享(diff-files
、diff-index
、diff-tree
、format-patch
、log
和 显示
)。它们各自的文档仅包含 diff-options
文档:
include::diff-options.txt[]
见于 this line of the git-diff-files documentation source例如。公共(public) diff-options
然后具有共享的 --diff-filter
文本 starting here .
由于这些文件是在构建文档时处理的,如条件所示
ifndef::git-format-patch[]
在 --diff-filter
文档上方的行中,可以想象 diff-files
命令的文本会有所不同(或扩充以说明一些事实参数不适用)。针对此更改向 git 项目提交错误报告可能是有意义的。
关于git - git diff-files --diff-filters=A 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039277/
我是一名优秀的程序员,十分优秀!