git當前分支修改文件不提交切換另一個分支(git stash)


出發前先講故事:項目正在test分支更新版本我們瘋狂的寫bug,突然沒更新前的版本出bug了(意料之中),此時呢我們要切換到master分支去改bug。此時此刻我test分支上修改的文件還不想提交,但是切換分支會提示我錯誤有文件未提交(如圖一)。那么現在我們一起學習一下   git stash   吧!

 (圖一)

現在直接輸入  git stash    命令,將當前分支存起來,id為adad619 實名制購票 

接下來我們就可以隨意切換分支了,等你切換到其他分支再切回來的時候,我們想恢復剛剛存儲的文件。

現在先輸入  git stash  list   命令去查看我們“存儲”的列表

 

 

可以看到我們剛剛存儲id為  ‘adad619 實名制購票’  的信息

有兩種方式我們可以恢復

一、用  git stash apply 命令恢復,但是恢復后,stash內容並不刪除,這時候再執行    git stash list  命令,id 為 adad619 實名制購票 的儲藏項目還會在列表中,你需要用 git stash drop 來刪除;

注意: 如果有一個分支上多個 stash,如果需要恢復指定的 stash ,可以在命令尾部加id,如   git stash apply stash@{0}  ,同樣刪除指定 stash 項目則執行如  git stash drop stash@{1} 


二、用   git stash pop  命令,恢復的同時把 stash 存儲列表的內容也刪了。這時候再執行   git stash list  命令,id 為  adad619 實名制購票 的儲藏項目不會在列表中。

此時再查看  cat <filename>   會發現之前的改動還存在,且執行  git status 就會繼續顯示該分支上有改動未提交。

 

====================================================================================

到這里就算結束了。但是我相信大家可能看到  git stash 命令都比較陌生那么請仔細看一下下面的相關介紹吧!

 

常用git stash命令:

(1)git stash save "save message"  : 執行存儲時,添加備注,方便查找,只有git stash 也要可以的,但查找時不方便識別。

(2)git stash list  :查看stash了哪些存儲

(3)git stash show :顯示做了哪些改動,默認show第一個存儲,如果要顯示其他存貯,后面加stash@{$num},比如第二個 git stash show stash@{1}

(4)git stash show -p : 顯示第一個存儲的改動,如果想顯示其他存存儲,命令:git stash show  stash@{$num}  -p ,比如第二個:git stash show  stash@{1}  -p

(5)git stash apply :應用某個存儲,但不會把存儲從存儲列表中刪除,默認使用第一個存儲,即stash@{0},如果要使用其他個,git stash apply stash@{$num} , 比如第二個:git stash apply stash@{1} 

(6)git stash pop :命令恢復之前緩存的工作目錄,將緩存堆棧中的對應stash刪除,並將對應修改應用到當前的工作目錄下,默認為第一個stash,即stash@{0},如果要應用並刪除其他stash,命令:git stash pop stash@{$num} ,比如應用並刪除第二個:git stash pop stash@{1}

(7)git stash drop stash@{$num} :丟棄stash@{$num}存儲,從列表中刪除這個存儲

(8)git stash clear :刪除所有緩存的stash

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM