我正在尝试使用 git 从两个提交中导出已更改文件的列表,使用以下命令:
read -ra ADDR <<< `git diff --name-only HEAD..HEAD~1 | sed -e "s/ /\\\ /g"`
for i in "${ADDR[@]}"; do
echo "$i"
done
这工作正常。我得到一个很好的列表打印到终端,每个文件都在一个新行上。
file1.txt
file2.txt
file3.txt
但是,我想使用--name-status
而不是--name-only
. 原因是我以后可以根据所做的更改(例如 M 或 D)做不同的事情。
但这不起作用。我得到以下格式的列表:
M
file1.txt
M
file2.txt
M
file3.txt
我试图将IFS
变量更改为$'\n'
(返回一行上的所有内容)、$'\t'
(返回第一行,例如M file1.txt
)和' '
(与 相同\t
)但没有成功。