1. 程式人生 > >GIT 如何在不提交Commit的情況下切換分支

GIT 如何在不提交Commit的情況下切換分支

最近遇到一個問題,事情是這樣子的,剛剛接到客戶說他的專案有問題,於是就開啟本地的原始碼檢視經過排查確定了問題,於是就開始進行修正工作 將問題修復好準備提交到git的時候發現當前的分支是不對的,但問題是我已經在當前分支了作了大量修改,如果要切換分支則必須先要將修改過的檔案先提交 那麼現在問題來了:如何在不提交commit的情況下來切換分支呢? 最後通過檢視Pro Git文件瞭解到Git中有一個stash功能可以實現

經常有這樣的事情發生,當你正在進行專案中某一部分的工作,裡面的東西處於一個比較雜亂的狀態,而你想轉到其他分支上進行一些工作。問題是,你不想提交進行了一半的工作,否則以後你無法回到這個工作點。解決這個問題的辦法就是git stash命令。

“‘儲藏”“可以獲取你工作目錄的中間狀態——也就是你修改過的被追蹤的檔案和暫存的變更——並將它儲存到一個未完結變更的堆疊中,隨時可以重新應用。

 因為之前沒有使用過此功能,特意做了個測試先 先在test分支修改了test2.txt檔案 修改完成後發現該修改不應該在test分支了於是將所有的更改先儲藏(stash)起來 然後切換到相應的分支(新建了test2分支)並從stash中取出之前的修改 然後再test2分支中commit所有的修改 因為儲藏會產生兩個分支記錄,所以提交歷史看起來亂七八糟的,所以將之前的儲藏分支刪除(刪除後乾淨多好) 完成,合併分支等操作

使用了stash的分支圖
刪除stash後的提交歷史 參考: