首頁技術文章正文

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

更新時間:2022-06-22 來源:黑馬程序員 瀏覽量:

  1、解決思路

   在工作過程中,當你正在當前feature分支上進行功能的開發(fā),突然來了一個bug,要創(chuàng)建一個bugfix修復分支進行修復。但是當前feature分支你只開發(fā)了一半,顯然你去提當前的半成品是不合適的,我們?nèi)绾翁幚泶祟悊栴},來大家看下一圖解:

1655868750789_1.jpg

  我們用到的關鍵命令:

  ```properties

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

  git stash save "干活干到一半"

  #查看stash list

  git stash list

  恢復方式一:

  # apply恢復后手動drop清除stash

  $ git stash apply

  $ git stash drop

  # 多個stash時,恢復指定stash需加上id, 如

  $ git stash apply stash@{0}

  恢復方式二:

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

  git stash pop

  # 同理 有多個存儲時

  git stash pop stash@{0}

  ```

  2、動手實踐

  上圖中我們可以看到整個的處理過程,下面我們來看下具體的操作

  2.1、基于Idea工具解決

  右擊項目目錄----Git----Reppository----Stash Changes

1655868785420_2.jpg

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

1655868826417_3.jpg

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

1655868849957_4.jpg

  當然你是不能直接在feature分支上修復bug的,這是你需要切換master分支:

1655868871114_5.jpg

  在master主分支基礎上創(chuàng)建bugfix分支進行修復

1655869056373_6.jpg

1655869071373_7.jpg

  修復bug,并提交到bugfix

1655869275386_8.jpg

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

1655869299660_9.jpg

1655869309490_10.jpg

  把之前在bugfix分支上修復的代碼合并到當前的master分支

1655869350100_11.jpg

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

  找回上一次feature的工作點進行工作

1655869472595_14.jpg

  彈出框選擇你的工作點,然后點擊Apply Stash

  2.2、基于Git命令解決

1655869550002_17.jpg

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

1655869566321_18.jpg

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

  ```properties

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

  git stash save "干活干到一半"

  ```

1655869631881_19.jpg

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

1655869648744_20.jpg

  當然你是不能直接在feature分支上修復bug的,你需要切換master分支:

1655869685123_21.jpg

  在master主分支基礎上創(chuàng)建bugfix分支進行修復

  bugfix代碼后進行提交

1655869749477_24.jpg

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

1655869762141_25.jpg

  合并bugfix代碼到master

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

1655869806762_28.jpg

  找回上一次feature的工作點進行工作

  ```properties

  #stash列表查看

  git stash list

  ```

1655869862706_29.jpg

  ```properties

  # apply恢復后手動drop清除stash

  $ git stash apply

  $ git stash drop

  ```

分享到:
在線咨詢 我要報名
和我們在線交談!