0

我正在尝试使用以下命令来访问我分支上所有提交的提交 ID。

git rev-parse HEAD~0--> 给出最新的提交

git rev-parse HEAD~1--> 给出之前的提交

git rev-parse HEAD~n

我需要使用循环方法一一访问所有提交
git rev-parse HEAD~i

我不能让它工作。

4

2 回答 2

1

一个简单的 while 应该可以正常工作

git log --pretty="%h" | while read revision; do
    # do whatever you need to do with this revision
    echo revision $revision
done

如果需要反向,可以使用 --reverse 作为参数来记录。

PS试图获得修订的数量?

revisions=$( git log --pretty="%h" | wc -l )
echo There are $revisions revisions on my branch
于 2019-02-28T16:48:06.287 回答
0

终于设法获得了忽略主合并拉提交git rev-list origin/master.. --no-merges --count 上述命令返回值2,这是预期的开发分支上的提交次数的计数因为我在我的分支上做了 2 次提交,其余的是主合并提交。我已将此计数存储为局部变量 i = 2。我可以知道如何在以下命令中使用此变量吗?以下命令在按原样使用时会出错。基本上我想让命令使用 i = 2 的值。非常感谢

git rev-parse HEAD~i

于 2019-03-04T12:59:47.900 回答