一、基本介紹
git stash用來暫存當前工作目錄的修改,使得當前工作區回到乾淨的狀態。當你要切換分支或者需要處理其他事情時,可以使用git stash暫存一下,之後再回來繼續進行工作。
在使用git stash的過程中,可能會有多個stash,這時候就需要利用git stash list來查看stash棧上的stash列表。
二、查看stash列表
我們可以通過下面的命令來查看所有stash:
$ git stash list stash@{0}: On master: add feature A stash@{1}: On master: fix bug B
上述輸出的含義為:當前stash列表上有兩個stash,分別為stash@{0}和stash@{1},它們分別保存了在master分支上添加feature A和修復bug B時的工作目錄狀態。
三、stash的命名
如果你在使用git stash的時候添加了-m參數,可以給stash命名,這時候git stash list命令就會顯示相應的名字。下面是一個例子:
$ git stash save -m "Add feature A" $ git stash save -m "Fix bug B" $ git stash list stash@{0}: On master: Add feature A stash@{1}: On master: Fix bug B
可以看到,這時候stash@{0}和stash@{1}分別顯示了具體的名字。
四、stash的信息
通過git stash show命令,可以查看某個stash具體保存的修改:
$ git stash show stash@{0} diff --git a/file1 b/file1 index 0123456..abcdef 100644 --- a/file1 +++ b/file1 @@ -1,3 +1,4 @@ line1 line2 +line3 line4
上述命令顯示了stash@{0}的具體變動,它包含了對file1文件的修改。
五、刪除stash
如果你想刪除某個stash,可以通過git stash drop來刪除:
$ git stash drop stash@{0}
上述命令將刪除stash@{0},stash@{1}則會成為新的棧頂。如果你想刪除所有的stash,可以使用git stash clear。
六、應用stash
如果你想應用某個stash並刪除它,可以使用git stash pop:
$ git stash pop stash@{0}
上述命令將應用stash@{0},之後會從stash棧中刪除它。如果你不想刪除stash,可以使用git stash apply命令。
七、補丁提交
git stash save命令會將修改保存到暫存區,可以使用git stash branch創建一個新分支,之後在該分支上進行修改和提交。
另外,如果你想將某個stash應用到其他分支上,也可以使用git cherry-pick或者git stash apply與git diff配合來實現。
八、總結
git stash list是一個非常有用的命令,能夠幫助我們查看當前保存在stash棧上的所有stash,並且可以查看指定stash包含的修改信息。同時,通過刪除、應用stash,我們也可以在不同分支之間對工作目錄進行操作,實現patch級別的代碼共享。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/155498.html