Этот скрипт bash сделает свое дело, создавая ветвь с именем B n , начиная с B1 для каждого коммита.Я предполагаю, что вы не хотите делать весь репо, но какой-то диапазон A..B (исключая A, включая B), который я произвольно устанавливаю в HEAD ~ 10..HEAD здесь.
A=HEAD~10
B=HEAD
counter=0
for commit in `git rev-list --reverse $A..$B`; do
counter=$((counter + 1))
git branch B$counter $commit
done
Обратите внимание на использование --reverse
: без него этот цикл назначил бы ветвь B1 для самого последнего коммита;с этим цикл назначает B1 для самого старого коммита.
Теперь, если вы хотите пометить все коммиты в текущей ветви, замените строку for
на:
for commit in `git rev-list --reverse`; do
и если вы хотите пометить все коммиты в репо в каждой ветке, используйте эту строку for
:
for commit in `git rev-list --reverse --all`; do