2012-07-15 27 views
4

所以,我有两个分支master和formtest如何别名git的结帐&& git的藏匿处申请

我有一个[别名]“混帐开关”,让我藏匿正在进行中的任何作品和Google Checkout另一个分支。

“混帐开关”

switch = !git stash && git checkout 

现在我想建立一个[别名]

“混帐切”

switchback = ??? 

时运行它,我希望它说

切换到此分支“formtest”

然后运行藏匿申请

到unstash做最后的WIP和返回的东西回来之前,我第一次运行“混帐开关”

+3

听起来你正在寻找[Legit](http://www.git-legit.org/),它是一组增强的Git命令,包括一个带有自动隐藏/不闪烁的'git switch'。 – 2012-07-15 04:48:15

+0

这个(合法)是一个超级模特的热门性行为!我想把它看作是一个红宝石宝石(只是为了书呆子的缘故)。我仍然对我最初的问题的实际答案感到好奇,因为'现在只想更多地控制我的git。 – thefonso 2012-07-15 05:19:34

+0

在实现中可能需要考虑很多事情。例如,我不确定为什么在'git stash'之前有'!',因为大概你只有在'git stash'成功时才会切换到新的分支。但是如果没有什么东西要隐藏呢?你应该事先检查一下。相反,在'switchback'命令中,你必须记住你想要切换到的分支的名称,然后取消修改,但是只有当第一个地方存在任何东西时才能使用。 Legit为你照顾这一切。 :) – 2012-07-15 05:27:23

回答

0

要切换回你

git checkout - && git stash apply 

之前制作的分支-的工作原理与-类似,如cd -例如切换回您使用的最后一个分支(位置)。


要注意,如果你之间发生checkout另一分支,这将checkout错误的分支。

0
git checkout $(git log --format=%B -n 1 [email protected]{0} | grep -oP '(?<=^WIP on)[^(:][^:]*' || git rev-parse [email protected]{0}^) 

这将解析包含分支名称的最新存储提交消息。如果没有分支(分离HEAD),它将检出藏匿的父提交。