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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git 分支管理-git stash 和git stash pop

發布時間:2023/12/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git 分支管理-git stash 和git stash pop 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

合并分支,沖突是難免的,在實際協作開發中我們遇到的情況錯綜復雜,今天就講兩個比較重要的命令使用git stash?和git stash pop

試想一下:1.假如我們在develop分支開發,這時候突然技術經理說有個緊急修復下,這修復bug之前說了,需要從master穩定版本開一個分支,而我們develop如果沒有commit,而直接切換到master,會有如下提示:

?

[plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?checkout?master??
  • error:?Your?local?changes?to?the?following?files?would?be?overwritten?by?checkout:??
  • ????app/src/main/java/Activity.java??
  • Please,?commit?your?changes?or?stash?them?before?you?can?switch?branches.??
  • Aborting??
  • ??
  • zxdeMacBook-Pro:hswallpager?zs$?git?branch??
  • *?develop??
  • ??master??

  • 根據提示,我們需要提交修改或者在切換分之前 stash 一下。而我們每次間斷就要commit一次,將來git log里會有很多臨時提交,太多了讓人無法快速定位,而這的確不是我們想要的,那就只有stash。stash的含義就是把工作區的修改臨時儲藏起來,等以后再恢復使用。那我們不妨一試git stash,看看結局是什么樣子的:

    ?

    ?

    [plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?stash??
  • Saved?working?directory?and?index?state?WIP?on?develop:?b70f2af??develop?update??
  • HEAD?is?now?at?b70f2af??develop?update??
  • ?

    ?

    先看最后一句 "HEAD is now at b70f2af develop update". 還記得上一篇的分支圖吧。

    ?

    [plain]?view plain?copy
  • *???073fc5c?合并后的修改??
  • |\????
  • |?*?b70f2af??develop?update??
  • *?|?41754e3?修改??
  • |/????
  • ?

    ?

    因為我們上一篇master合并后develop后,并沒有將develop的分支和master同步,因此develop分支的最新的提交記錄就在b70f2af,也就是工作區目前是干凈的。git stash ?執行后,develop分支就相當于什么也沒操作一樣。

    ?

    接著我們在執行最開始的切換到master分支,看看會怎樣,還會不會提示上述信息:

    ?

    [plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?checkout?master??
  • Switched?to?branch?'master'??
  • Your?branch?is?ahead?of?'origin/master'?by?8?commits.??
  • ??(use?"git?push"?to?publish?your?local?commits)??
  • ??
  • zxdeMacBook-Pro:hswallpager?zs$?git?branch??
  • ??develop??
  • *?master??

  • 怎么樣,是不是正確切換到master分支了。現在我們在新建并切換分支hotfixes-01.然后可以修復緊急bug了。然后修改,提交,刪除hotfixes-01即可。然后我們繼續切回develop分支:

    ?

    ?

    [plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?checkout?develop??
  • Switched?to?branch?'develop'??
  • zxdeMacBook-Pro:hswallpager?zs$?git?status??
  • On?branch?develop??
  • ??
  • nothing?to?commit,?working?directory?clean??
  • ?

    ?

    這時候我們可以先把master分支的修改合并到develop,操作步驟以前也學過了,合并沖突等。這時候我們看會代碼,stash之前的代碼已經看不到了。那我們怎么繼續接著上述的修改恢復現場呢。這時候用到git stash pop
    我們先看一下stash清單,執行git stash list

    ?

    [plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?stash?list??
  • stash@{0}:?WIP?on?develop:?b70f2af?develop?update??

  • 然后我們用git stash pop 恢復現場,看一下結果:

    ?

    ?

    [plain]?view plain?copy
  • zxdeMacBook-Pro:hswallpager?zs$?git?stash?pop??
  • On?branch?develop??
  • ??
  • 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:???app/src/main/java/Activity.java??
  • ??
  • no?changes?added?to?commit?(use?"git?add"?and/or?"git?commit?-a")??
  • Dropped?refs/stash@{0}?(44c79bddb5c6c3848bc0de0b687cf14d4907b012)??
  • ?

    ?

    ?

    這時候在看工作區的源代碼,發現已經正確恢復現場,可以繼續在以前基礎上工作了。

    ?

    2.現在另一種情況:你pull最新代碼,但這時候你又不想重新增加commit記錄,這時候先git stash,然后pull,最后在git stash pop,

    ?

    這1和2兩種情況在實際開發過程中會經常用到,要熟練掌握git stash的應用。

    補充:在我們多次使用git stash 后,git棧里充滿了很多未提交的代碼,這時候用git stash list 可以講git 棧信息打印出來,比如

    git stash apply stash@{1}?就代表把指定版本號為stash@{1}的工作取出來。清空的話使用git stash clear

    ?

    git stash pop 和 git stash?apply 的不同:

    apply 讀取暫存區的數據,通過apply后,暫存區的數據依然存在。

    pop 是取出最新的一次暫存數據,pop后,暫存區就不會存在這次數據了。

    ?

    總結:

    git stash ?#可用來暫存當前正在進行中的工作

    git stash pop ?#從git棧中恢復第一個。相當于git stash apply 和git stash drop

    git stash list ? #打印git棧中的所有信息

    git stash clear ?#清空git棧

    git stash apply stash@{1} ?#將你指定版本號為stash@{1}的工作取出

    ?

    版本分支是git區分集中式版本控制的一大優勢,而為了保證團隊協作中順利的開發,建議大家多用分支,至于具體分支的命名,不必拘泥死板,根據自己團隊的實際情況,讓分支成為我們團隊開發的助推器,而不是拖后腿。

    ?

    總結

    以上是生活随笔為你收集整理的Git 分支管理-git stash 和git stash pop的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 精品人妻一区二区三区浪潮在线 | 人人妻人人爽欧美成人一区 | 小泽玛利亚一区二区三区视频 | 久草福利免费 | 无码人妻一区二区三区av | 亚洲欧美一区二区三区情侣bbw | 色婷婷亚洲 | 涩涩视频免费看 | 久久艹伊人 | 久久成人福利视频 | 午夜在线观看视频18 | 成年人在线免费观看视频网站 | 黄色录像a级片 | 日本二三区 | 免费网站在线高清观看 | 天堂中文资源在线观看 | 欧美va视频 | 国产丝袜自拍 | 综合精品一区 | av自拍偷拍 | 在线观看不卡的av | 国产成人精品影院 | 亚洲精品成人片在线观看精品字幕 | 亚洲 欧美 日韩在线 | 男女草比视频 | 又粗又大又硬又长又爽 | 国产精品久久久久久久久久久久久久久久 | 免费毛片看片 | 久久久穴| 国产毛片一区二区 | 婷婷综合国产 | 日韩a级在线观看 | 在线免费av片 | 国产va在线观看 | 久久精品成人 | 久久网av| 成人网在线观看 | 九九视屏 | 成人免费视频国产免费 | 制服丝袜成人动漫 | 国产天堂第一区 | 天天插天天射天天干 | 国产另类在线 | 亚洲专区免费 | 亚洲激情二区 | 一级片免费看视频 | 日韩中文字幕视频 | 91色呦呦| 免费观看日韩av | 成人午夜视频精品一区 | 日本久久爱 | 欧美成人做爰大片免费看黄石 | 色婷婷综合激情 | 中文字幕第6页 | 私人av| 97在线观看免费 | 女人av在线 | 老妇高潮潮喷到猛进猛出 | 草草影院欧美 | 亚洲黄色在线 | 日韩精品色 | 美女少妇一区二区 | 天堂网一区二区三区 | 婷婷亚洲精品 | 欧美一区二区三区久久成人精品 | 国产又粗又猛又黄又爽 | 成人av在线资源 | 99精品热 | 日韩亚洲精品在线 | 免费av在线播放 | 天堂伊人 | 久久看片| 91色在线观看 | 久久天堂视频 | 痴女扩张宫交脱垂重口小说 | 亚洲青青操| 黄色片免费在线观看 | 国产日韩欧美二区 | 成人午夜视频在线免费观看 | 国产一区亚洲二区三区 | 亚洲熟妇av日韩熟妇在线 | av网页在线 | 国产福利在线免费观看 | 国产a黄| 天天综合日日夜夜 | 91精品在线视频观看 | 奇米91| 欧美男女交配 | 天天看夜夜爽 | 久久人人爽人人爽人人 | 奶波霸巨乳一二三区乳 | 日韩欧美视频免费在线观看 | 久久久久久久亚洲精品 | 深夜福利院 | 亚洲伊人久久综合 | 成人在线激情 | 亚洲不卡中文字幕无码 | 久久精品99久久久久久 | 98堂 最新网名 |