IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼
場(chǎng)景:
當(dāng)我們正在master分支開發(fā)新功能的時(shí)候,突然接到一個(gè)任務(wù)發(fā)現(xiàn)線上出現(xiàn)了一個(gè)緊急的BUG需要修復(fù),由于沒有打新分支做這部分新需求,這時(shí)正做到半途中....已經(jīng)把本地代碼修改得花里胡哨了,該怎么辦,有什么辦法快速解決嗎?
這時(shí)Git stash這個(gè)非常實(shí)用的功能就派上用場(chǎng)了,將本分支的修改暫存起來(lái)。
涉及到的幾個(gè)命令:
1、git status:查看工作區(qū)文件狀態(tài),列出已經(jīng)修改的文件
2、 git stash save '自定義描述' :暫存工作區(qū)的文件
3、git stash list:查看所有暫存列表
4、git stash pop:恢復(fù)暫存的文件,直接將最近一次 stash 的代碼pop出來(lái)并刪除stash記錄,還原到stash隱藏之前
5、git stash apply id:恢復(fù)暫存的文件,和git stash pop功能一樣,先通過git stash list找到記錄編號(hào),通過編號(hào)id恢復(fù)。區(qū)別在于git stash apply id不會(huì)刪除stash記錄。
實(shí)際中還原后就沒什么必要在保存stash記錄了,推薦直接用git stash pop就OK了。
IDEA 也可以用可視化界面直接操作:右鍵project > git > repository
拓展:找回清除的 stash 數(shù)據(jù)
我們能將代碼暫存起來(lái),當(dāng)然也能將暫存區(qū)的數(shù)據(jù)刪除,如果在沒有恢復(fù)暫存代碼的時(shí)候不小心將暫存區(qū)的數(shù)據(jù)刪除了該怎么吧?
只需要用這句命令即可:
git log --graph --oneline --decorate $( git fsck --no-reflog | awk '/dangling commit/ {print $3}')
找到對(duì)應(yīng)的 id,然后用git stash apply id 命令直接恢復(fù)找回即可
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
SpringCloud?eureka(server)微服務(wù)集群搭建過程
這篇文章主要介紹了微服務(wù)SpringCloud-eureka(server)集群搭建,?項(xiàng)目搭建的主要步驟和配置就是創(chuàng)建項(xiàng)目和引入pom依賴,本文通過圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07java實(shí)現(xiàn)兩臺(tái)服務(wù)器間文件復(fù)制的方法
這篇文章主要介紹了java實(shí)現(xiàn)兩臺(tái)服務(wù)器間文件復(fù)制的方法,是對(duì)單臺(tái)服務(wù)器上文件復(fù)制功能的升級(jí)與改進(jìn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01java實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)注冊(cè)登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04java.util.NoSuchElementException原因及兩種解決方法
本文主要介紹了java.util.NoSuchElementException原因及兩種解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Java最簡(jiǎn)潔數(shù)據(jù)結(jié)構(gòu)之冒泡排序快速理解
冒泡排序是編程中數(shù)據(jù)結(jié)構(gòu)繞不過的一個(gè)基礎(chǔ)點(diǎn),有關(guān)于冒泡排序的文章也有很多,但可能會(huì)比較繚亂未能理解,本章將一子u為簡(jiǎn)潔明了的例圖帶你通關(guān)冒泡排序2021-11-11老生常談Java中List與ArrayList的區(qū)別
大家都知道List是接口,ArrayList是List接口的一個(gè)實(shí)現(xiàn)類,接下來(lái)通過本文給大家介紹Java中List與ArrayList的區(qū)別,需要的朋友可以參考下2022-08-08