方法1:
$ git checkout v4.1.0-rc12 branch
(see if it succeeds, if so):
$ git add ... # if/as needed
$ git commit
這可能無法工作,因爲git checkout
步將拒絕切換到分支,如果(且僅當)表示開關會消滅你已經改變製作。
git checkout
步驟將成功,並隨身攜帶您的更改,如果可以的話。
如果git checkout
步驟成功,這是迄今爲止處理這一切的最簡單方法。如果不是,請繼續使用其他方法。
方法2(avi's answer):
$ git checkout -b tempbranch
$ git add ... # as and if needed
$ git commit
這(在-b tempbranch
)創建一個新的,臨時黨支部指向上,你分開你的頭早些時候提交。該git commit
然後創建這個臨時黨支部新的承諾:
o--o--o <-- v4.1.0-rc12 branch
/
...--o--o
\
o <-- tempbranch
現在你可以git checkout
任何你喜歡的,並提交你tempbranch
取得永久存儲在你的倉庫(當然,永久除非/直到你刪除名稱tempbranch
),它使您可以隨時從其中複製內容。
方法3:
$ git stash
$ git checkout v4.1.0-rc12 branch
$ git stash apply # or even "git stash pop" but I prefer "apply"
... check everything out ...
... if it all looks right ...
$ git stash drop # "git stash pop" means "apply and then auto-drop"
git stash
做的是使一個提交(實際上提交)使不上任何分支。效果與製作臨時分支時的效果相同。這會導致在完成該操作時刪除非分支的問題,因此git stash drop
會刪除包含提交的未命名非分支。
的git stash apply
步本質(雖然它比這更復雜)櫻桃挑選觸犯該git stash
做,無論你在哪裏現在:所以這是像櫻桃採摘提交你tempbranch
製造。
注意git stash pop
自動調用git stash drop
,即使git stash apply
的結果是一個爛攤子,你失去了你的臨時提交,如果你pop
但如果你apply
。如果一切順利,井沒有真正的區別,pop
更方便;這只是一個更好的情況下bread-crumb trail萬一事情變糟。
(我個人的偏好,順便說一句,是方法1首先如果可能的話,通常2,然後是3,但有時,當我相信它去上班 - 我喜歡的方法3方法2 )
很好的答案。謝謝!! –