日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Git学习笔记6】把当前工作现场“储藏”起来:stash操作

發(fā)布時間:2024/9/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Git学习笔记6】把当前工作现场“储藏”起来:stash操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

明月幾時有,把酒問青天,光吃菜,不加點“酒”怎么行呢。今天來說說在code戰(zhàn)場上“喝醉”后怎么收場的事情,Bug分支以及bug分支的后處理。啥,題目有點懵?🤫,先看到底唄,還懵圈就來后臺撩我,小白無償陪你聊聊這“醉酒”的事情。

一、Bug分支

寫code的呀,bug就像家常便飯一樣。有了bug就需要修復,在Git中,由于分支是如此的強大,所以,每個bug都可以通過一個新的臨時分支來修復,修復后,合并分支,然后將臨時分支刪除。

情景:當你接到一個修復一個代號101的bug的任務時,很自然地,你想創(chuàng)建一個分支issue-101來修復它。但是,等等,當前正在dev上進行的工作還沒有提交。

我們先復現下這種環(huán)境:目前的分支只有master。

新建一個dev分支,做些修改,比如刪除了一個文件。

這個時候我們需要去修復bug,并不是你不想提交,而是工作只進行到一半,還沒法提交,預計完成還需1天時間。但是,必須在兩個小時內修復該bug,怎么辦?Git還提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以后恢復現場后繼續(xù)工作。

第一步:在需要存儲的分支中輸入命令git stash

第二步:切換到master分支

第三步:新建issue-101分支,且修復bug

你想看我修改了什么,你可以用 git diff查看下差別是什么

第四步:在issue-101分支上提交commit,且切換到master分支

第五步:在master分支進行merge(使用—no-ff方式)

第六步:切換到dev分支,git status,工作區(qū)是干凈的。

剛才的工作現場存到哪去了?用git stash list命令看看:

工作現場還在,Git把stash內容存在某個地方了,但是需要恢復一下。

第七步:git stash pop 恢復存儲現場,且刪除這個存儲。

用git stash list 發(fā)現沒有任何存儲了。

第八步:把issue-101 刪除。

注意:還有一個恢復現場的辦法,但是這個就不會自動刪除現場,需要你手動刪除。

命令:

git stash apply stash@{0}?

git stash drop stash@{0}

你可以多次stash,恢復的時候,先用git stash list查看,然后恢復指定的stash,用命令:git stash apply stash@{0}

總結:

修復bug時,我們會通過創(chuàng)建新的bug分支進行修復,然后合并,最后刪除;當手頭工作沒有完成時,先把工作現場git stash一下,然后去修復bug,修復后,再git stash pop,回到工作現場。

二:Bug分支后處理

有個大問題,你發(fā)現了嘛?在master分支上修復了bug后, dev分支是早期從master分支分出來的,所以,這個bug其實在當前dev分支上也存在。

那怎么在dev分支上修復同樣的bug?

  • 方案1:自己在dev分支上重復操作一次,然后提交。麻煩哈!不建議。

  • 方案2:需要把1358040 fix bug 101這個提交所做的修改“復制”到dev分支。注意:我們只想復制1358040 fix bug 101這個提交所做的修改,并不是把整個master分支merge過來。很簡單!很推薦!

  • 方案3:從master 新切一個dev2分支出來,然后在dev2分支上stash。也比較好,與方案2無差啥。

方案3,口頭說一下:

git checkout -b dev2 (在master分支上操作)

git stash pop

git checkout master

git branch -d dev (在master分支操作)

我們來實驗一波方案2

為了方便操作,Git專門提供了一個cherry-pick命令,讓我們能復制一個特定的提交到當前分支。接著上面bug分支的操作來喲。

第一步:切換到dev分支。

第二步: git cherry-pick <commitId>

注意:commitId怎么查看,還記得嘛?

方法1:git reflog 根據紅框找到箭頭所指,?

方法2:git log –graph

可以理解一下為什么可以這么做?Git自動給dev分支做了一次提交,注意這次提交的commit是637f237,它并不同于master的1358040,因為這兩個commit只是改動相同,但確實是兩個不同的commit。用git cherry-pick,我們就不需要在dev分支上手動再把修bug的過程重復一遍。

目前分支:

總結在master分支上修復的bug,想要合并到當前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“復制”到當前分支,避免重復勞動。

對了,羞答答的問一句:這個菜+酒系列,還喜歡嗎?請用“在看”來回復我吧。

往期回顧

總結

以上是生活随笔為你收集整理的【Git学习笔记6】把当前工作现场“储藏”起来:stash操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。