LINUX.ORG.RU

[git] получить все версии файла

 


0

1

пусть файл main.cpp быд закоммитичен несколько раз - как получить все версии этого файла в виде типа:
1_main.cpp_<commin1_hash>
2_main.cpp_<commin2_hash>
...
N_main.cpp_<comminN_hash>
, где N - последний коммит для данного файла

★★★★★

Ответ на: комментарий от Belkrr

да я понял что rtfm )

итого решил так :

#!/bin/sh

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

fn="main.cpp"
num="0"
for l in $(git log --oneline -- ./src/$fn | awk '{print $1}'); do
    nn=$(printf _%02d $num)
    git show $l:src/$fn > ${nn}_${l}_${fn}
   ((num += 1))
done

IFS=$SAVEIFS
x905 ★★★★★
() автор топика
Ответ на: комментарий от x905

Невнимательно прочитал. Нужно получить именно сами файлы, а не список версий. Тогда да, где-то так.

Однако git log --format=«%H» мне кажется более удобным чем format=oneline и awk

Belkrr
()
Ответ на: комментарий от Belkrr

да, форматирование использовал первое попавшееся, учту ну будущее

x905 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.