2013-09-25 26 views
4

我經常在會話演示中使用git,以便逐步展示軟件開發。到現在爲止,我爲發展里程碑定義了標籤,並且我曾經從一步到另一步結賬。但這不是一個好主意:我有時想更新某些步驟,從標籤到另一個標籤的轉換並不總是直觀。用於會話演示的Git

我發現了一些有趣的方法來嘗試改進事情。在https://coderwall.com/p/ok-iyg處,定義next和prev別名以促進步驟之間的導航,但是這些別名是在提交時定義的,不能解決更新步驟的問題。在http://www.damirscorner.com/UsingGitInSessionDemos.aspx,這些步驟基於分支機構,我認爲這是更好的解決方案。有可能在此上下文中重新定義像next和prev這樣的命令,可能使用分支的命名約定(例如step1,step2 ...)。

但是爲了獲得完整的功能控制,理想情況下可以添加一些操作,例如:修改分支的可能性以及與一個或多個其他分支(前一個或下一個分支)的合併的可能性,在離開一個工作目錄乾淨的步驟之前檢查一下,建議清理或提交。

您是否知道這種精神的擴展/工作流程/用例可以幫助我更快地達到我想要的環境?

在此先感謝!

回答

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名稱制作回購本地別名。

如果你想git next帶你從step1step2git prev帶你從step2step1,然後使這些別名:

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

這原來東西變成鬆散連接的一個git-like系統節點,只能通過命名引用連接,這些引用很容易在.git/config下的[alias]部分編輯,可以在任何環境中使用,並且遠離回收站中的文件。

注意,配置文件不與回購旅行(即克隆時,取出,推,或拉動),所以你需要攜帶.git文件夾和你在一起,或者至少.git/config文件,或者只是翻拍這些別名無論你在哪裏。