前言
🍊緣由
git stash不會搞,走到哪裏都拉倒
🏀事情起因:
大家好,我是JavaDog程序狗
最近翻看公眾號評論時,發現文章【規範】Git分支管理,看看我司是咋整的小夥伴的多條回覆:
本狗在回覆留言時,發現小夥伴對於切換分支有所疑惑:
本地代碼要是修改且未提交,切換分支時本地修改內容咋辦
遇到這種問題的小夥伴一定是沒有用好git stash,本狗以自我使用角度,解析下git stash的基本用法
🎯主要目標
實現3大重點
1. git stash 是什麼
2. git stash 相關使用指令
3. git stash 使用實操
正文
🥦目標分析
一. git stash 是什麼
git stash 是 Git 版本控制系統中的一個非常實用的命令
git stash 允許“臨時存放”工作區和暫存區中的所有修改,這樣你就可以乾淨地切換到另一個分支去處理其他任務,而不用擔心當前的工作進度會被覆蓋或丟失。
👽人話情景解釋 git stash :
本狗在廚房裏忙着做黑暗料理,突然電話響了,是女神説他馬上就到。這時候,我不能讓女神看到廚房亂七八糟,也不能讓半成品的食物和滿地垃圾放着不管,那咋辦呢?
git stash 就像是我的收納櫃,女神來了,我迅速把所有切好的食材、滿地垃圾,收拾整齊,全放置於收納櫃,這樣廚房看起來乾淨整潔,而且送走女神後還能接着做黑料接着舞,不會丟失任何東西,哪怕是一個垃圾。
等你忙完手頭的事情,回到原來的工作,你只需運行 git stash pop 或者 git stash apply,你之前的工作就會被“解包”,恢復到你離開時的狀態,你可以接着做原來的工作了。
在 Git 中,當你正在修改代碼,但突然需要切換去做另一件事情,比如修復一個緊急的 Bug,或者幫助同事解決一個問題,你不想丟失你當前的修改,也不想把這些未完成的修改混進新的工作中去。這時候,git stash 就派上了用場。
你只需要運行 git stash,Git 就會幫你把所有未提交的修改都“打包”起來,放到一個安全的地方(我們稱之為 stash),然後讓你的工作區變得乾淨,就像你剛從倉庫檢出代碼一樣。
這樣,git stash 就像是一個臨時的“暫停鍵”,幫助你管理你的工作流程,保持代碼的整潔,同時保證你的工作進度不會丟失。
使用 git stash 命令時,Git 會做以下幾件事
- 保存修改:Git 會保存工作目錄中所有未提交的修改,無論是已暫存的還是未暫存的更改。
- 清理工作目錄:Git 會將你的工作目錄恢復到最近一次提交的狀態,清除所有未提交的更改。
- 壓入棧中:保存的更改會被放到一個稱為“stash”的特殊存儲區域,這個區域實際上是一個類似於堆棧的數據結構,稍後從這裏恢復你的工作。
二. git stash 相關使用指令
1.使用 git stash 來暫時存儲當前的修改
git stash
2.使用 git stash save "message" 來暫時存儲當前的修改,並附上一個備註信息
git stash save "v2.1.1訂單需求代碼"
3.使用 git stash list 來查看當前所有的stash
git stash list
4.使用 git stash apply 來應用最新的stash
# 應用最新的stash
git stash apply
# 通過git stash list查詢後,獲取應用指定的stash引用
git stash apply stash@{2}
5.使用 git stash drop 來刪除最新的stash
# 刪除最新的stash
git stash drop
# 通過git stash list 查詢後,刪除指定的stash引用
git stash drop stash@{2}
6.使用 git stash pop 來應用最新的stash並且刪除
# 通過git stash list 查詢後,應用最新的stash並刪除
git stash pop
7.使用 git stash clear 來清空所有的stash
# 清空所有的stash
git stash clear
8.使用 git stash show 來查看最新stash的內容
# 查看最新stash的內容
git stash show
9.使用 git stash branch 新分支,從最新的stash創建一個新的分支並應用該stash
# 創建一個新的分支並應用最新的stash
git stash branch new_feature
三. git stash 使用實操
🌰實例
當前分支feature-javadog-v2.1.1-SNAPSHOT-20240703正在開發寫了一半,突然線上有緊急bug,需要切出bug分支進行修改問題,咋辦?
目前存在的問題是,現在分支開發還沒有寫完,沒法提交,如果切換分支本地代碼就會丟失,所以就需要使用git stash命令
1.在開發分支使用git stash save "message" 暫存寫了一半代碼
git stash save "v2.1.1訂單需求代碼"
2.修改完bug後切換回當前開發分支,使用git stash list查看暫存記錄
git stash list
3.使用git stash apply stash引用號,進行恢復暫存數據
git stash apply 0
4.使用git stash drop stash引用號,進行暫存數據清理
git stash drop 0
以上實際例子出發,展示實際操作用的基礎命令,其餘命令使用均可參考上述相關使用指令
總結
git stash 是 Git 提供的一個功能,用於臨時存儲當前工作目錄和暫存區中所有未提交的更改。當你需要切換分支或進行其他操作,而又不想丟失當前正在進行的工作時,git stash 可以幫助你將這些更改“打包”並保存起來,以便之後可以恢復到之前的工作狀態。
git stash 相關使用指令
git stash: 保存當前所有未提交的更改。
git stash save "message": 同上,但可以添加一條信息來描述此次 stash 的內容。
git stash list: 列出所有已保存的 stash。
git stash apply [stash_ref]: 應用指定的 stash,保留原 stash。
git stash pop [stash_ref]: 應用並刪除指定的 stash,默認為最新的 stash。
git stash drop [stash_ref]: 刪除指定的 stash。
git stash clear: 刪除所有 stash。
git stash show: 顯示最新的 stash 的內容。
git stash branch [branch_name]: 創建新分支並應用最新的 stash。
🍈猜你想問
如何與狗哥聯繫進行探討
關注公眾號【JavaDog程序狗】
公眾號回覆【入羣】或者【加入】,便可成為【程序員學習交流摸魚羣】的一員,問題隨便問,牛逼隨便吹,目前羣內已有超過280+個小夥伴啦!!!
2.踩踩狗哥博客
javadog.net
裏面有狗哥的私密聯繫方式呦 😘
大家可以在裏面留言,隨意發揮,有問必答
🍯猜你喜歡
文章推薦
【工具】珍藏免費寶藏工具,不好用你來捶我
【插件】IDEA這款插件,愛到無法自拔
【規範】看看人家Git提交描述,那叫一個規矩
【工具】用nvm管理nodejs版本切換,真香!
【項目實戰】SpringBoot+uniapp+uview2打造H5+小程序+APP入門學習的聊天小項目
【項目實戰】SpringBoot+uniapp+uview2打造一個企業黑紅名單吐槽小程序
【模塊分層】還不會SpringBoot項目模塊分層?來這手把手教你!
【ChatGPT】SpringBoot+uniapp+uview2對接OpenAI,帶你開發玩轉ChatGPT