如何使用git复制教程的步骤

  • 本文关键字:教程 复制 何使用 git git
  • 更新时间 :
  • 英文 :


我有一个有一系列提交的项目。这个项目是一个教程,每次提交都代表了教程中的一个小步骤。可以从第一次提交和"玩"开始。接下来的提交,一个接一个地,为了向观众解释教程?

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

$ 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)来推进,而不需要知道下一次提交的哈希值。

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

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)启动一个shell,将提交id作为提示符。

退出shell(类型为exitCTRL-D)以继续下一次提交,或退出exit 1以中止进程。

最新更新