我经常在会话演示中使用git,以便逐步显示软件开发。到目前为止,我为发展里程碑定义了标签,而且我过去常常从一个步骤转到另一个步骤。但这不是一个好主意:我有时想要更新某些步骤,从标签到另一个标签的过渡并不总是直观的。
我找到了一些有趣的方法来尝试改进。在https://coderwall.com/p/ok-iyg,定义next和prev别名以便于在步骤之间导航,但这些别名是在提交时定义的,不能解决更新步骤的问题。在http://www.damirscorner.com/UsingGitInSessionDemos.aspx,步骤基于分支,我认为这是允许更新的更好解决方案。可以在此上下文中重新定义next和prev等命令,可能使用分支的命名约定(例如,step1,step2 ......)。
但是为了获得完全功能的控件,理想情况下可以添加一些操作,例如:修改分支的可能性以及与一个或多个其他分支(前一个或下一个分支)的合并,或者检查在离开工作目录干净的步骤之前,提议要么清理或提交。
您是否知道这种精神的扩展/工作流程/用例可以帮助我更快地达到我想要的环境?
提前致谢!
答案 0 :(得分: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
带您从step1
到step2
和git prev
带您从step2
转到step1
,那么请这些别名:
git config alias.nextstep1 'checkout step2'
git config alias.prevstep2 'checkout step1'
这会将事物变成一个类似git的松散连接节点系统,只能通过命名引用连接,这些引用可以在.git/config
部分[alias]
下轻松编辑,可以在任何环境中使用,并且远离回购中的文件。
请注意,配置文件不会带有repos(即克隆,抓取,推送或拉动时),因此您需要携带.git
文件夹,或者至少带{{1无论你身在何处,都可以重新制作这些别名。