Я пытаюсь экспортировать список измененных файлов из двух коммитов с помощью 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
) без успех.