Git工具中提供了一個stash命令,這個命令的做用是建立快照。快照主要的用途是將當前未更新到緩存區的修改進行入棧保存,建立快照後,Git的狀態會變回上一次提交時的狀態,這時候咱們能夠作其餘的操做。建立的快照會被保存在棧中,在須要的時候,咱們能夠恢復快照。舉一個小例子,實際開發中,不少狀況咱們都會從主分支拉出一個新的分支進行新功能的開發,若是咱們在開發過程當中,有一個緊急的bug須要到主分支中修改,這時候咱們經常會將目前爲完善的代碼先提交到新的分支,而後切回主分支修改bug,以後再回來繼續開發。可是若是這個新的分支並不僅是你一我的開發,你的不完善的提交頗有可能形成別人沒法工做,其實你可使用Git的快照命令,先將本身的修改存成快照入棧保存,回到主分支修改完bug後,在將快照出棧便可。git
將當前未更新到緩存區的修改建立成快照。須要注意,快照是採用棧的方式管理。咱們能夠入棧多個快照,例如先作一部分修改,建立爲快照,以後又進行了修改,再次建立快照。第2次快照並不會覆蓋之前的快照,咱們能夠指定恢復到的快照。緩存
打印當前棧中的全部快照。app
打印某個快照的修改信息,後面的stash參數指定快照在棧中的位置,命令格式以下:stash@{num},最後入棧的爲stash@{0},向前依次爲stash@{1}、stash@{2}...。若是不限stash參數,則默認將打印棧頂快照的信息。工具
恢復到某個快照版本,若是不加stash參數,則默認會恢復到棧頂的快照版本。這個命令會將恢復的快照從棧中刪除掉。spa
恢復到某個快照的版本,若是不加stash參數,則默認會恢復到棧頂的快照版本。這個命令和pop的不一樣之處在於恢復的快照並不會從棧中刪除。開發
清空棧中的全部快照。it
清除棧中的某個快照,若是不設置stash參數,則會默認清除棧頂的快照。bug