首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用git重现教程的步骤

如何使用git重现教程的步骤
EN

Stack Overflow用户
提问于 2021-03-02 22:10:54
回答 1查看 54关注 0票数 2

我有一个项目有一系列的提交。这个项目是一个教程,每次提交都代表着教程中的一个小步骤。可以从第一次提交开始,一个接一个地“播放”下一次提交,以便向观众解释教程?

如果我执行git log,那么我会得到以下输出:

代码语言:javascript
运行
复制
   $ git log
    commit a867b4af366350be2e7c21b8de9cc6504678a61b`
    Author: Me <me@me.com>
    Date:   Thu Nov 4 18:59:41 2010 -0400
    
    Third step of the tutorial, blah blah blah...
    
    commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
    Author: Me <me@me.com>
    Date:   Thu Nov 4 05:13:39 2010 -0400
    
    Second step of the tutorial, more blah blah blah...
    
    commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
    Author: Me <me@me.com>
    Date:   Thu Nov 4 00:55:06 2010 -0400
    
    First step of the tutorial,  blah blah...

编辑:我知道我可以使用checkout来执行每一次提交。一旦我在第一次提交时,就有一个简单的命令(除了checkout 25eee4c之外)可以继续执行,而不需要知道下一次提交的散列?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 22:19:27

如果您想在每个阶段与存储库的内容进行交互,您可以这样做:

代码语言:javascript
运行
复制
old_head=$(git name-rev --name-only HEAD)
for commit in $(git rev-list --reverse HEAD); do
    git checkout -q $commit
    git show --quiet
    PS1="${commit:0:7}> " bash --norc || break
done
git checkout -q $old_head

在这里,我们使用git rev-list --reverse HEAD以相反的顺序(最早的最先)获取提交列表。然后,对于每个提交,我们(a)检查提交,(b)显示日志消息,(c)以提交id作为提示启动一个shell。

退出shell (键入exitCTRL-D)继续执行下一次提交,或键入exit 1中止进程。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66441024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档