飞奔的柚子 · 如何使用XWPF - Apache ...· 2 月前 · |
冷冷的上铺 · 升级SQL,distinct随笔:disti ...· 6 月前 · |
胡子拉碴的眼镜 · 六、Python获取list个数(type ...· 11 月前 · |
爱搭讪的烤土司 · vs 2019 报错:C++ 无法打开 源 ...· 1 年前 · |
发呆的手套 · 冬月枫隐退了,是真的么? - 知乎· 1 年前 · |
在执行
git diff --stat
时,某些文件会列出存储库基础的完整路径,但有些文件会列出如下所示:
.../short/path/to/filename.
也就是说,路径以
...
开头,并且只显示短路径。
我想
git diff
列出的所有文件的完整文件路径,以便它可以很容易地由脚本处理。是否有什么方法可以让
git diff
始终显示完整路径
我发现diff --stat的行为在git 1.7.10前后的某个地方发生了变化,以前它会将文件路径缩短到默认的固定宽度-它现在可以显示你的终端窗口允许的尽可能多的内容。如果您遇到此问题,请确保升级到1.8.0或更高版本。
对于Bash用户,您可以使用
$COLUMNS
变量自动填充可用的终端宽度:
git diff --stat=$COLUMNS
很长的路径名可能仍然会被截断;在这种情况下,您可以使用
--stat-graph-width
减少+/-部分的宽度,例如,这会将其限制为终端宽度的1/5:
git show --stat=$COLUMNS --stat-graph-width=$(($COLUMNS/5))
对于更通用的解决方案,您可以使用
tput cols
的输出来确定终端宽度。
对于脚本处理,最好使用以下方法之一:
# list just the file names
git diff --name-only
path/to/modified/file
path/to/renamed/file
# list the names and change statuses:
git diff --name-status
M path/to/modified/file
R100 path/to/existing/file path/to/renamed/file
发呆的手套 · 冬月枫隐退了,是真的么? - 知乎 1 年前 |