将 git 存储库中的所有提交转换为按顺序命名的分支?
Convert all commits in a git repository to branches named sequentially?
我正在尝试找出一个庞大的代码库。
平时我运行
git log
然后我为每个提交创建一个分支并按顺序调查每个提交。
有没有办法为每个提交创建一个分支并按顺序命名它们,如 01、02 ...等。
这个 bash 脚本可以解决问题,为每次提交创建一个从 B1 开始的名为 Bn 的分支。我假设你不想做你的整个回购,而是一些 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
我正在尝试找出一个庞大的代码库。
平时我运行
git log
然后我为每个提交创建一个分支并按顺序调查每个提交。 有没有办法为每个提交创建一个分支并按顺序命名它们,如 01、02 ...等。
这个 bash 脚本可以解决问题,为每次提交创建一个从 B1 开始的名为 Bn 的分支。我假设你不想做你的整个回购,而是一些 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