git 保存臨時文件 git stash

小夥伴在使用git的時候會不會遇到下面這種情況
假設你正在develop分支開發項目,代碼寫了一半,暫時還不想提交。但是這時候突然來個緊急bug。你要切換到test分支去修改bug。

方法一:

今天,注要說的是使用git stash解決這個問題
git stash:個人理解,就是將當前工作區的更改的內容備份起來,存到git 棧當中

操作:
1、將當前工作區的內容備份,注意備份的是還沒 git add .的內容

git stash	//備份當前工作區所有內容,自動生成註釋
git stash save '註釋內容' //備份當前工作區所有內容,並增加註釋

備份完之後,你就可以切換到其他分支修改bug了。
當你修改完其他完分支後。回到本分支看如下操作
2、查看自己備份的序列號或條目,看你怎麼理解

git stash list

沒寫註釋的長這樣:
在這裏插入圖片描述
寫註釋的是這樣的:
在這裏插入圖片描述
細心的小夥伴們注意到stash@{0}這個了沒。最新備份的條目總是0
我們繼續往下看
3、根據stash@{num} 恢復到工作區

git stash pop //恢復最近一次stash的文件內容(stash@{0}),並將該記錄在 git stash list 中刪除,刪除記錄
git stash apply //恢復最近一次stash文件內容(stash@{0}),list 列表中不刪除記錄
git stash pop stash@{num}//恢復指定序列條目的內容,並刪除該條目的記錄
git stash apply stash@{num}//恢復指定序列條目的內容,並刪除該條目的記錄

4、假設我用了apply,但是後來我想把我之前備份的文件刪了怎麼辦

git stash drop  //刪除最近一次備份,也就是stash@{0}.
git stash drop stash@{num} //刪除指定序列備份
git stash clear //刪除所有備份文件

在develop開發,去test修改bug

方法二:

創建臨時分支篇

git switch -c 'devtemp01' //基於develop當前修改的內容創建臨時值devtemp01
git commit -a -m '臨時解決'//提交commit
git checkout test//切換test修改並提交
......
git checkout devtemp01//改完bug回到devtemp01
git reset HEAD^//將上一次commit回退到工作區,繼續進行修改,修改完成後合併到develop分支
git branch -d devtemp01 //完事刪除本地創建的臨時分支

方法三:

簡單篇

git commit -a -m '提交develop更改' //提交develop更改
git checkout test //切換到test,進行修改bug,提交併推送
......
git checkout develop 
git reset HEAD^ //拉回工作區,繼續進行修改。

註釋:
git switch 和 git checkout 都能切換分支,基本沒什麼區別。
git commit -a -m '內容' 實際就是git add . 和 git commit -m '內容'結合體

不知道小夥伴看了上面幾種類型,有什麼想法呢,歡迎留言提問!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章