Как получить список смещений от HEAD с помощью команды git log.

o=0; git log --oneline | while read l; do printf "%+9s %s\n" "HEAD~${o}" "$l"; o=$(($o+1)); done | less


Эта команда позволяет получить список смещений от HEAD для каждого коммита в выводе git log.

o=0; инициализирует переменную o с нулевым значением.
git log --oneline выводит список коммитов в формате одной строки.
while read l; начинает цикл, в котором каждая строка вывода git log будет считываться как l.
printf "%+9s %s\n" "HEAD~${o}" "$l" форматирует вывод, добавляя смещение от HEAD (HEAD~${o}) и сам коммит ($l).
o=$(($o+1)) увеличивает переменную o на 1 для следующего коммита.
| less позволяет просматривать результат поэкранно.

Альтернативно, вы можете использовать git rev-list --count HEAD для получения общего количества коммитов от HEAD, и затем итерировать от 0 до этого значения.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *