2012-07-15 29 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),它將檢出藏匿的父提交。