Bug 分支

設想一下開發中以下的一種情景,當你在一個分支 work 上開發一個新功能時候,原來的程序報了一個序號為101的 bug,急需修復,而手頭上的工作還未完成,不能提交。這時候我們該怎么辦呢?

方法是先把手頭上的工作“掩埋”起來,然后建一個分支 issue-101 去修復 bug,待 bug 修復完成后再著手手頭上的工作。

請看下面一個例子:

創建一個分支 work,把正在做的工作的 commit 提交到這個分支上:

$ git checkout -b work

$ git add test.txt
$ git commit -m '工作中'

這時出現了一個 bug,我們先放下當前的工作,用 git stash 命令把手頭上的工作“掩埋”起來:

$ git stash
Saved working directory and index state WIP on work: 58951c7 工作中
HEAD is now at 58951c7 工作中

注意:這里只修改了工作區的內容,并沒有執行 git add 和 git commit。

然后我們就可以回到 master,新建一個分支 issue-101 來修復這個 bug:

$ git checkout master

$ git checkout -b issue-101

把 bug 修復,然后提交:

$ git add test.txt 
$ git commit -m "已修復 bug 101"

修復完成后,切換到 master 分支,并完成合并,最后刪除 issue-101 分支:

$ git checkout master

$ git merge --no-ff -m "修復 bug 101,并合并到 master" issue-101

$ git branch -d issue-101

現在 bug 已經修復完了,我們要回到 work 分支,繼續剛才的工作:

$ git checkout work
Switched to branch 'work'

$ git status
# On branch work
nothing to commit (working directory clean)

現在工作區是空的,我們先用 git stash list 命令看看:

$ git stash list
stash@{0}: WIP on work: 58951c7 工作中

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

一是用 git stash apply 恢復,但是恢復后,stash 內容并不刪除,你需要用 git stash drop 來刪除;

另一種方式是用 git stash pop,恢復的同時把stash內容也刪了:

$ git stash pop
On branch work
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   test.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a801931f6ab2e061167bf0ed85bb9522928f29f7)

如果有多次 stash,恢復的時候,先用 git stash list 查看,然后恢復指定的stash:

$ git stash apply stash@{0}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容