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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

git rebase(变基)—— Git 学习笔记 19

發布時間:2025/3/15 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git rebase(变基)—— Git 学习笔记 19 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

git rebase(變基)

認識 git rebase

假設你現在基于遠程分支"origin",創建一個叫"mywork"的分支。

$ git checkout -b mywork origin

現在我們在 mywork 分支做一些修改,生成兩個提交(C5和C6).

但是與此同時,有些人也在"origin"分支上做了一些修改并且做了提交了。

你可以用"fetch"命令把"origin"分支上的修改拉下來(但是不合并); 正如下圖,"origin"和"mywork"這兩個分支“分道揚鑣”了。

你可以用"merge"命令把"origin"分支合并到你的分支,這會生成一個合并提交(C7)。

但是,如果你不喜歡分叉與合并,你想讓"mywork"分支的歷史看起來像一條直線,那你可以用 rebase命令

$ git checkout mywork $ git rebase origin

這會把分叉之后的"mywork"分支(C5,C6)“嫁接”到“origin”分支的頂端。如下圖:

當“mywork”分支更新之后,它會指向最后一個新創建的提交(C6’). 而那些老的提交(C5,C6)會被Git 的垃圾收集機制丟棄,如下圖:

我們可以看一下用 merge 和用 rebase 所產生的歷史的區別:

理解 git rebase

之前我們說過git cherry-pick命令(可以參考我的博文git cherry-pick 詳解).

其實“git rebase”就是一系列的“cherry-pick”,只是這一系列的動作用一條命令(git rebase)給完成了。你完全可以通過多次手動“cherry-pick”來復制其行為(不過不太方便,更容易出現人為錯誤)。

假設你要把 topic 分支 rebase 到 master 分支上

D <-- topic(*) | | C <-- master B | |/ | A

你會運行命令:

git checkout topic git rebase master

在上面的上下文中,“git rebase master”這條命令的潛臺詞是:

  • git checkout master # 切換到master分支

  • git checkout -b topic_rebased # 基于master分支創建并切換一個新分支,比如叫 topic_rebased

  • for each commit C in master…topic # 對于在topic分支且不在master分支的每個提交 C

    ? git cherry-pick C # 揀選 C 到 topic_rebased 分支

  • 忘記"topic" 的過去, 把 topic_rebased 改名為"topic"

  • 過程如下圖:

    D <-- topic(*) | | C <-- master B | |/ | A D <-- topic | | C <-- master, <--topic_rebased(*) B | |/ | A B' <-- topic_rebased(*) D | | | | C <-- master B / |/ | A D' <-- topic_rebased(*)|B' D | | | | C <-- master B / |/ | A D' <-- topic(*) | B' | C <-- master | A

    在 rebase 的過程中,也許會出現沖突 (conflict)。如果遇到沖突,Git 會停止 rebase,并讓你去解決沖突;在解決完沖突后,可以用"git-add"命令去標記此沖突已經解決。 然后,你無需執行 git commit,只要執行:

    $ git rebase --continue

    這樣 git 會繼續應用余下的補丁。

    如果你rebase到一半,突然后悔了,你可以用--abort參數來終止 rebase,并且"mywork" 分支會回到 rebase 開始前的狀態。

    $ git rebase --abort

    ----請各位磚家斧正----

    【完】

    參考資料

    【1】https://stackoverflow.com/questions/10058068/in-a-git-cherry-pick-or-rebase-merge-conflict-how-are-base-aka-the-ancestor

    【2】http://gitbook.liuhui998.com/4_2.html

    【3】https://codeday.me/bug/20180228/136734.html

    總結

    以上是生活随笔為你收集整理的git rebase(变基)—— Git 学习笔记 19的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 一区二区三区 日韩 | 成人精品视频在线观看 | 日女人网站 | 成人黄色在线观看视频 | 宅男噜噜噜66一区二区 | 69日影院 | 国产精品资源网站 | 九热这里只有精品 | 国产美女av在线 | 久久国产麻豆 | 国产精品欧美亚洲 | 久久久久人妻一区二区三区 | 蘑菇福利视频一区播放 | 人妻少妇一区二区三区 | 国产大片中文字幕 | a毛片视频 | 日韩极品视频在线观看 | 在线观看日韩 | 国产哺乳奶水91在线播放 | 亚洲aaaaa特级 | 国产一区视频在线免费观看 | 免费中文视频 | 少妇被躁爽到高潮无码文 | 国产黄色片在线播放 | 麻豆av影视 | 久草aⅴ | 精品蜜桃av| 成人乱码一区二区三区av | 欧美精品一区二区蜜桃 | 国产一区午夜 | 男女超爽视频免费播放 | 国产超碰| 夜夜嗨影院 | 国产精品专区在线观看 | 国产精品果冻传媒 | 女人av| 久久爱成人| 贵族女沦为官妓h呻吟 | 日日拍夜夜拍 | 日日爱99 | 羞羞网站在线看 | 国产黄色一级 | 精品成人免费一区二区在线播放 | 激情五月亚洲 | 天堂а√在线中文在线新版 | 九色porny视频 | 尤物网在线 | 丰满少妇毛片 | 九九热久久免费视频 | 911亚洲精品 | 午夜男人的天堂 | 日韩精品播放 | 亚洲成人中文 | 第一色综合 | 欧美日韩色 | 精品一区二区三区蜜桃 | 美女污软件 | 激情文学亚洲 | 天天综合网久久综合网 | 国产激情一区二区三区在线观看 | 日本爱爱免费视频 | 国产在线精 | 拍真实国产伦偷精品 | 人妻无码中文字幕免费视频蜜桃 | 国产精品熟女一区二区不卡 | 久久久www成人免费毛片 | 日本欧美久久久久免费播放网 | 性xx紧缚网站 | 国产黄色高清视频 | 伊人久久大香线蕉 | 日本成人激情 | 波多野结衣中文字幕在线 | 亲嘴扒胸摸屁股免费视频日本网站 | 中文字幕日韩一区二区 | 亚洲gay视频 | 蜜臀av在线观看 | 成年人午夜网站 | 日韩精品免费播放 | 一本大道久久a久久精二百 琪琪色在线视频 | 奇米99| 91在线在线| 诱惑av | 久久免费在线观看视频 | 国产r级在线观看 | 日韩免费视频一区二区 | 中文字幕在线观看1 | 国产黄色免费在线观看 | 欧美寡妇性猛交ⅹxxx | 亚洲字幕av| 久久激情网 | 久久久久人妻一区 | 香蕉国产 | 97色干 | 香港黄色网 | 欧美一区二区视频在线观看 | www.久草.com| 成人手机av | 国产美女主播视频 | 亚洲看片网 |