【问题标题】:Git for session demos用于会话演示的 Git
【发布时间】:2013-09-30 16:10:36
【问题描述】:

我经常在会话演示中使用 git,以便逐步展示软件开发。到目前为止,我为发展里程碑定义了标签,并且我过去常常结帐以从一个步骤到另一个步骤。但这不是一个好主意:我有时想更新某些步骤,而从一个标签到另一个标签的转换并不总是直观的。

我发现了一些有趣的方法来尝试改进。在https://coderwall.com/p/ok-iyg,定义了 next 和 prev 别名以方便步骤之间的导航,但是这些别名是在提交时定义的,这并不能解决更新步骤的问题。在http://www.damirscorner.com/UsingGitInSessionDemos.aspx,这些步骤基于分支,我认为这是允许更新的更好解决方案。可以在此上下文中重新定义诸如 next 和 prev 之类的命令,可能使用分支的命名约定(例如 step1、step2 ...)。

但是为了获得功能齐全的控件,理想情况下可以添加一些操作,例如:修改分支并与一个或多个其他分支(前一个或下一个)合并的可能性,或者检查就在离开工作目录已清理的步骤之前,建议清理或提交。

您是否知道本着这种精神的扩展/工作流程/用例可以帮助我更快地达到我想要的环境?

提前致谢!

【问题讨论】:

    标签: git demos


    【解决方案1】:

    一个相当简单的解决方案是创建这两个别名(假设是 *nix 环境):

    git config alias.prev prev`git branch | grep '\*' | cut -d' ' -f2`
    git config alias.next next`git branch | grep '\*' | cut -d' ' -f2`
    

    这些将解析为:

    git prevbranch
    git nextbranch
    

    ...其中branch 是当前分支的名称 - 例如如果您在master 分支上并调用git next,它将解析并运行git nextmaster。然后,您可以使用 prev/next 名称创建 repo-local 别名。

    如果您想让git next 将您从step1 带到step2git prev 将您从step2 带到step1,那么请制作这些别名:

    git config alias.nextstep1 'checkout step2'
    git config alias.prevstep2 'checkout step1'
    

    这会将事物变成一个类似 git 的系统,由松散连接的节点组成,仅通过命名引用连接,这些引用可在 .git/config[alias] 部分下轻松编辑,可在任何环境中使用,并且包含在远离正确的 repo 中的文件。

    请注意,配置文件不会随 repos 一起移动(即在克隆、获取、推送或拉取时),因此您需要随身携带 .git 文件夹,或者至少是 .git/config 文件,或者只是在任何地方重新制作这些别名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2019-03-25
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      相关资源
      最近更新 更多