Конвертировать все коммиты в репозитории git в ветки с последовательным именем? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь выяснить огромную базу кода.

Обычно я запускаю

git log

Затем я создаю ветвь для каждого коммита и последовательно исследую каждый.Есть ли способ создать ветку для каждого коммита и назвать их последовательно как 01, 02 ... и т. Д.

1 Ответ

0 голосов
/ 29 января 2019

Этот скрипт 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...