我們有時會遇到這樣的情況,正在dev分支開發(fā)新功能,做到一半時有人過來反饋一個bug,讓馬上解決,但是新功能做到了一半你又不想提交,這時就可以使用git stash命令先把當前進度保存起來,然后切換到另一個分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop來恢復之前的進度繼續(xù)開發(fā)新功能。下面來看一下git stash命令的常見用法
git stash
保存當前工作進度,會把暫存區(qū)和工作區(qū)的改動保存起來。執(zhí)行完這個命令后,在運行git status命令,就會發(fā)現(xiàn)當前是一個干凈的工作區(qū),沒有任何改動。使用git stash save 'message...'可以添加一些注釋
git stash list
顯示保存進度的列表。也就意味著,git stash命令可以多次執(zhí)行。
git stash pop [–index] [stash_id]
-
git stash pop恢復最新的進度到工作區(qū)。git默認會把工作區(qū)和暫存區(qū)的改動都恢復到工作區(qū)。 -
git stash pop --index恢復最新的進度到工作區(qū)和暫存區(qū)。(嘗試將原來暫存區(qū)的改動還恢復到暫存區(qū)) -
git stash pop stash@{1}恢復指定的進度到工作區(qū)。stash_id是通過git stash list命令得到的
通過git stash pop命令恢復進度后,會刪除當前進度。
git stash apply [–index] [stash_id]
除了不刪除恢復的進度之外,其余和git stash pop 命令一樣。
git stash drop [stash_id]
刪除一個存儲的進度。如果不指定stash_id,則默認刪除最新的存儲進度。
git stash clear
刪除所有存儲的進度。