git stash 怎麼用?

temulun發表於2018-12-22

一、切換分之前,新增改動檔案到stash; git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容儲存到Git棧中。

git stash pop: 從Git棧中讀取最近一次儲存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。

git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。

git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。

在原分支 git stash save -a “messeag”,-a選項才會將新加入的程式碼檔案同時放入暫存區。如果是以前就有了,那麼就不用加-a,你加的話,會報錯的。

這裡的message已經要標註情況,分支倒是不用標明,一定要標明他的用途,不然你真的會亂的。

二、切換回以前的分支後,如果你要恢復的是最近的一次改動,git stash pop,我想這是大家最常用的命令了吧; 如果有多次stash操作,那就通過git stash list檢視stash列表,從中選擇你想要pop的stash,執行命令git stash pop stash@{id}或者 git stash apply stash@{id}即可。

三、刪除stash; git stash drop stash@{id} 如果不加stash編號,預設的就是刪除最新的,也就是編號為0的那個,加編號就是刪除指定編號的stash。 當你都玩完了後,可以用git stash clear清理所有的快取記錄。

四、git stash pop 與 git stash apply 的區別; 這兩個命令的區別。原來git stash pop stash@{id}命令會在執行後將對應的stash id 從stash list裡刪除,而 git stash apply stash@{id} 命令則會繼續儲存stash id。 一般來說你直接git stash pop stash@{id}就可以了,當然你如果想存下來,再後期的再次復原的話,可以用git satsh apply 。 見過一同事在git commit之前,居然在stash快取區內放入了二十幾次的stash記錄,這尼瑪,你就不能commit下呀。

參考網址

相關文章