![]() |
沉稳的石榴 · 73话 修罗场来了-影帝他要闹离婚-漫画牛· 1 年前 · |
![]() |
高大的日光灯 · 中共中央纪律检查委员会关于审理党员违纪案件工 ...· 1 年前 · |
![]() |
独立的柚子 · 第145话 - 倾城狂妃 - 包子漫画· 1 年前 · |
![]() |
小眼睛的小虾米 · 鲛人崽崽三岁啦漫画下拉式六 - 百度· 1 年前 · |
![]() |
才高八斗的咖啡 · 可否介绍美国职业足球大联盟(MLS)与NAS ...· 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
![]() |
沉稳的石榴 · 73话 修罗场来了-影帝他要闹离婚-漫画牛 1 年前 |
![]() |
独立的柚子 · 第145话 - 倾城狂妃 - 包子漫画 1 年前 |
![]() |
小眼睛的小虾米 · 鲛人崽崽三岁啦漫画下拉式六 - 百度 1 年前 |