4

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

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

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

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

提前致谢!

4

1 回答 1

0

一个相当简单的解决方案是创建这两个别名(假设是 *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你从step1tostep2git prev把你从step2to step1,然后做这些别名:

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

这将事物变成了一个类似 git 的松散连接节点系统,仅通过命名引用连接,这些引用.git/config在该[alias]部分下很容易编辑,可以在任何环境中使用,并且包含在 repo 中的文件之外。

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

于 2013-09-25T09:53:19.143 回答