IDEA:Git stash 暫存分支修改的實現代碼

場景:

當我們正在master分支開發新功能的時候,突然接到一個任務發現線上出現瞭一個緊急的BUG需要修復,由於沒有打新分支做這部分新需求,這時正做到半途中….已經把本地代碼修改得花裡胡哨瞭,該怎麼辦,有什麼辦法快速解決嗎?

這時Git stash這個非常實用的功能就派上用場瞭,將本分支的修改暫存起來。

涉及到的幾個命令:

1、git status:查看工作區文件狀態,列出已經修改的文件

2、 git stash save ‘自定義描述’ :暫存工作區的文件

3、git stash list:查看所有暫存列表

4、git stash pop:恢復暫存的文件,直接將最近一次 stash 的代碼pop出來並刪除stash記錄,還原到stash隱藏之前

5、git stash apply id:恢復暫存的文件,和git stash pop功能一樣,先通過git stash list找到記錄編號,通過編號id恢復。區別在於git stash apply id不會刪除stash記錄。

實際中還原後就沒什麼必要在保存stash記錄瞭,推薦直接用git stash pop就OK瞭。

IDEA 也可以用可視化界面直接操作:右鍵project > git > repository 

拓展:找回清除的 stash 數據

我們能將代碼暫存起來,當然也能將暫存區的數據刪除,如果在沒有恢復暫存代碼的時候不小心將暫存區的數據刪除瞭該怎麼吧?

隻需要用這句命令即可:

git log –graph –oneline –decorate $( git fsck –no-reflog | awk ‘/dangling commit/ {print $3}’)

找到對應的 id,然後用git stash apply id 命令直接恢復找回即可

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: