将git存储库中的所有提交转换为顺序命名的分支?

时间:2019-01-29 13:06:18

标签: git github repository

我试图找出一个巨大的代码库。

通常我会跑步

git log

然后,我为每个提交创建一个分支,并依次调查每个提交。 有没有一种方法可以为每个提交创建一个分支并按顺序命名它们,例如01、02 ... etc。

1 个答案:

答案 0 :(得分:0)

此bash脚本可以解决问题,为每次提交从B1开始创建一个名为B n 的分支。我假设您不想执行整个回购操作,但需要执行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