首頁(yè)技術(shù)文章正文

Java培訓(xùn):feature分支開(kāi)發(fā)到一半時(shí)切換到bugfix分支,如何暫存數(shù)據(jù)

更新時(shí)間:2022-06-22 來(lái)源:黑馬程序員 瀏覽量:

  1、解決思路

   在工作過(guò)程中,當(dāng)你正在當(dāng)前feature分支上進(jìn)行功能的開(kāi)發(fā),突然來(lái)了一個(gè)bug,要?jiǎng)?chuàng)建一個(gè)bugfix修復(fù)分支進(jìn)行修復(fù)。但是當(dāng)前feature分支你只開(kāi)發(fā)了一半,顯然你去提當(dāng)前的半成品是不合適的,我們?nèi)绾翁幚泶祟?lèi)問(wèn)題,來(lái)大家看下一圖解:

1655868750789_1.jpg

  我們用到的關(guān)鍵命令:

  ```properties

  #創(chuàng)建Stash 工作點(diǎn):

  git stash save "干活干到一半"

  #查看stash list

  git stash list

  恢復(fù)方式一:

  # apply恢復(fù)后手動(dòng)drop清除stash

  $ git stash apply

  $ git stash drop

  # 多個(gè)stash時(shí),恢復(fù)指定stash需加上id, 如

  $ git stash apply stash@{0}

  恢復(fù)方式二:

  # 恢復(fù)最近一次stash到棧中的內(nèi)容到工作區(qū),恢復(fù)后刪除此stash

  git stash pop

  # 同理 有多個(gè)存儲(chǔ)時(shí)

  git stash pop stash@{0}

  ```

  2、動(dòng)手實(shí)踐

  上圖中我們可以看到整個(gè)的處理過(guò)程,下面我們來(lái)看下具體的操作

  2.1、基于Idea工具解決

  右擊項(xiàng)目目錄----Git----Reppository----Stash Changes

1655868785420_2.jpg

  彈框填上message并勾上keep index方便后面找回,

1655868826417_3.jpg

  點(diǎn)擊create stash,此時(shí)你會(huì)發(fā)現(xiàn)會(huì)得到一個(gè)與你master分支內(nèi)容相同的代碼

1655868849957_4.jpg

  當(dāng)然你是不能直接在feature分支上修復(fù)bug的,這是你需要切換master分支:

1655868871114_5.jpg

  在master主分支基礎(chǔ)上創(chuàng)建bugfix分支進(jìn)行修復(fù)

1655869056373_6.jpg

1655869071373_7.jpg

  修復(fù)bug,并提交到bugfix

1655869275386_8.jpg

  再切換master分支,然后續(xù)進(jìn)行bugfix分支的合并

1655869299660_9.jpg

1655869309490_10.jpg

  把之前在bugfix分支上修復(fù)的代碼合并到當(dāng)前的master分支

1655869350100_11.jpg

  bug修復(fù)完成后,切回到feature分支,繼續(xù)工作

  找回上一次feature的工作點(diǎn)進(jìn)行工作

1655869472595_14.jpg

  彈出框選擇你的工作點(diǎn),然后點(diǎn)擊Apply Stash

  2.2、基于Git命令解決

1655869550002_17.jpg

  feature分支打代碼開(kāi)發(fā)到一半,這時(shí)候來(lái)了bug需要切換分支修復(fù)

1655869566321_18.jpg

  創(chuàng)建Stash 工作點(diǎn):

  ```properties

  #創(chuàng)建Stash 工作點(diǎn):

  git stash save "干活干到一半"

  ```

1655869631881_19.jpg

  此時(shí)你再查看App.java代碼會(huì)發(fā)現(xiàn)會(huì)得到一個(gè)與你master分支內(nèi)容相同的代碼

1655869648744_20.jpg

  當(dāng)然你是不能直接在feature分支上修復(fù)bug的,你需要切換master分支:

1655869685123_21.jpg

  在master主分支基礎(chǔ)上創(chuàng)建bugfix分支進(jìn)行修復(fù)

  bugfix代碼后進(jìn)行提交

1655869749477_24.jpg

  再切換master分支,然后續(xù)進(jìn)行bugfix分支的合并

1655869762141_25.jpg

  合并bugfix代碼到master

  bug修復(fù)完成后,切回到feature分支,繼續(xù)工作

1655869806762_28.jpg

  找回上一次feature的工作點(diǎn)進(jìn)行工作

  ```properties

  #stash列表查看

  git stash list

  ```

1655869862706_29.jpg

  ```properties

  # apply恢復(fù)后手動(dòng)drop清除stash

  $ git stash apply

  $ git stash drop

  ```

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!