色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

git rebase和git merge的區別

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-07-05 09:54 ? 次閱讀

解決沖突

git rebase和git merge的區別

分支合并

git merge是用來合并兩個分支的。

比如:將 b 分支合并到當前分支。

同樣git rebase b,也是把 b 分支合并到當前分支

他們的 「原理」 如下:

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

$gitcheckout-bmyworkorigin

假設遠程分支"origin"已經有了 2 個提交,如圖。

現在我們在這個分支做一些修改,然后生成兩個提交(commit)。

$vifile.txt
$gitcommit
$viotherfile.txt
$gitcommit
...

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

這就意味著"origin"和"mywork"這兩個分支各自"前進"了,它們之間"分叉"了。

在這里,你可以用"pull"命令把"origin"分支上的修改拉下來并且和你的修改合并;結果看起來就像一個新的"合并的提交"(merge commit):

但是,如果你想讓"mywork"分支歷史看起來像沒有經過任何合并一樣,你也許可以用git rebase:

$gitcheckoutmywork

$gitrebaseorigin

這些命令會把你的"mywork"分支里的每個提交(commit)取消掉,并且把它們臨時 保存為補丁(patch)(這些補丁放到".git/rebase"目錄中),然后把"mywork"分支更新 為最新的"origin"分支,最后把保存的這些補丁應用到"mywork"分支上。

當mywork分支更新之后,它會指向這些新創建的提交(commit),而那些老的提交會被丟棄。如果運行垃圾收集命令(pruning garbage collection), 這些被丟棄的提交就會刪除。(請查看 git gc)

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

解決沖突

在 rebase 的過程中,也許會出現沖突(conflict)。在這種情況,Git 會停止 rebase 并會讓你去解決 沖突;在解決完沖突后,用git-add命令去更新這些內容的索引(index),然后,你無需執行git-commit,只要執行:

$gitrebase--continue

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

在任何時候,你可以用--abort參數來終止 rebase 的行動,并且"mywork" 分支會回到 rebase 開始前的狀態。

$gitrebase--abort

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

git rebase和git merge的區別

現在我們可以看一下用合并( merge )和用 rebase 所產生的歷史的區別:

fb666a14-1ad3-11ee-962d-dac502259ad0.jpg

git rebase和git merge的區別

當我們使用Git log來參看 commit 時,其 commit 的順序也有所不同。

假設 C3 提交于9:00AM,C5 提交于 10:00AM,C4 提交于 11:00AM,C6 提交于 12:00AM。

對于使用 git merge 來合并所看到的 commit 的順序(從新到舊)是:C7、C6、C4、C5、C3、C2、C1。

對于使用 git rebase 來合并所看到的 commit 的順序(從新到舊)是:C7、C6‘、C5'、C4、C3、C2、C1。

因為C6'提交只是 C6 提交的克隆,C5' 提交只是 C5 提交的克隆。

從用戶的角度看使用 git rebase 來合并后所看到的commit的順序(從新到舊)是:C7、C6、C5、C4、C3、C2、C1。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7002

    瀏覽量

    88943
  • 管理系統
    +關注

    關注

    1

    文章

    2485

    瀏覽量

    35903
  • Git
    Git
    +關注

    關注

    0

    文章

    198

    瀏覽量

    15755

原文標題:面試官:說說git merge和git rebase的區別

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Git常用的超級實用命令

    Git作為最流行的代碼版本控制工具,基本上已經成為了程序員的一個標配技能。無論使用GitHub,GitLib,Gitee等進行代碼托管,均基于Git。下面聊一聊開發人員必會的幾個Git技巧和團隊協作
    的頭像 發表于 10-09 17:19 ?1156次閱讀
    <b class='flag-5'>Git</b>常用的超級實用命令

    git命令的基本使用

    git config 第一次使用git或者剛安裝的git時,使用此命令設置身份Name 和 Eamail 地址。并且每次提交時會使用此信息。
    的頭像 發表于 12-11 13:53 ?907次閱讀

    開發者必備的8 個 git 小技巧

    可以做一個交互式的重建基準(rebase),用來重新組織提交。為了做到這點,你需要運行命令 git rebase -i ,這里的是你想要重寫之前的一個提交(commit)的sha1值。接下來,它將
    發表于 07-05 10:30

    Git Hooks持續集成詳解

    1.了解Git Hooks Hook是Git系統的本地機制,用于在諸如代碼提交(Commit)和合并(Merge)之類的操作之前或之后觸發的定制化腳本,可以把它們看作是Git的插件系統
    發表于 09-28 13:09 ?0次下載

    開發人員在使用Git時幾種常見錯誤

    如果你想把一個分支的修改合并到當前分支,你可以用git rebase。它和git merge區別me
    的頭像 發表于 11-08 09:17 ?2793次閱讀

    Git命令解析-mergerebase

    維護的變更目錄。具體如何使用取決于項目合作者的一致共識。無論是merge還是rebase,都應該了解其中原理,避免危險操作,才能享受到Git諸多特性帶來的便利。
    的頭像 發表于 07-29 18:21 ?1074次閱讀
    <b class='flag-5'>Git</b>命令解析-<b class='flag-5'>merge</b>、<b class='flag-5'>rebase</b>

    Git命令解析-patch、apply、diff

    無論是merge還是rebase,都是在同一個工作目錄中協調差異,處理變更歷史。而git的另一些命令,允許開發者單獨保存,或者通過文件或郵件的方式與別人分享這些差異。
    的頭像 發表于 06-15 09:28 ?2844次閱讀

    Git是什么?Git的基本使用資料說明

      Git是什么? Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
    發表于 05-29 17:56 ?1次下載
    <b class='flag-5'>Git</b>是什么?<b class='flag-5'>Git</b>的基本使用資料說明

    騰訊是如何使用Git

    那么,切換到 git 來維護代碼倉庫,會對我們的日常開發造成影響嗎?答應是顯然的,首先我們需要學習 git 的基本概念與用法,然后就需要我們在具體的項目實踐過程中打磨我們的 git 使用技巧
    的頭像 發表于 08-10 15:02 ?2496次閱讀
    騰訊是如何使用<b class='flag-5'>Git</b>?

    帶你一步一步了解Git的底層原理

    作為當前世界上最強大的代碼管理工具Git相信大家都很熟悉,但據我所知有很大一批人停留在clone、commit、pull、push.。.的階段,是不是對rebase心里沒底只敢用merge? 碰見
    的頭像 發表于 05-10 17:55 ?3017次閱讀
    帶你一步一步了解<b class='flag-5'>Git</b>的底層原理

    通俗易懂的Git各指令的本質

    0前言 作為當前世界上最強大的代碼管理工具Git相信大家都很熟悉,但據我所知有很大一批人停留在clone、commit、pull、push.。。的階段,是不是對rebase心里沒底只敢用merge
    的頭像 發表于 06-24 18:06 ?1439次閱讀

    Git引出一個經典的算法問題:最近公共祖先

    這二者最直觀的區別就是:merge 方式合并的分支會看到很多「分叉」,而 rebase 方式合并的分支就是一條直線。但無論哪種方式,如果存在沖突,Git 都會檢測出來并讓你手動解決沖突
    的頭像 發表于 04-21 15:28 ?1396次閱讀

    Git的使用

    Git的使用
    的頭像 發表于 01-10 16:45 ?947次閱讀

    git rebase與相關git merge命令比較

    ? #前言 ??? git rebase命令經常被認為是Git的巫術,初學者應該遠離它,但它實際上可以讓開發團隊在使用時更加輕松。今天,我們將git
    的頭像 發表于 05-26 16:22 ?876次閱讀
    <b class='flag-5'>git</b> <b class='flag-5'>rebase</b>與相關<b class='flag-5'>git</b> <b class='flag-5'>merge</b>命令比較

    Git是什么 Git介紹

    git 是什么? Git 誕生于 2005 年,是一款免費、開源、分布式版本控制系統。 直接記錄快照,而非差異比較 Git 和其它版本控制系統的主要差別在于 Git 對待數據的方式。
    的頭像 發表于 07-22 10:50 ?1784次閱讀
    <b class='flag-5'>Git</b>是什么 <b class='flag-5'>Git</b>介紹
    主站蜘蛛池模板: 久久91精品久久久久久水蜜桃| 纯h超级大尺度小黄文| 人妻夜夜爽99麻豆AV| 国产成人综合网在线观看| 亚洲欧美中文字幕先锋| 免费观看男生桶美女私人部位| 超碰日韩人妻高清视频| 亚洲av欧美在我| 美女快播第一网| 国产69精品久久久久观看软件 | 亚洲视频在线观看视频| 美女胸网站| 国产成人拍精品视频网| 在线观看视频一区| 日本阿v片在线播放免费| 国产在线播放不卡| 99九九精品视频| 亚欧成人毛片一区二区三区四区| 久久中文电影| 国产99久久亚洲综合精品西瓜tv | 黄色网址在线看| 99热精品在线av播放| 袖珍人与大黑人性视频| 男男女女爽爽爽视频免费| 国产精品久久久久久亚洲影视| 中文字幕99香蕉在线| 无码毛片内射白浆视频| 恋夜影院支持安卓视频美女| 国产成人在线观看网站| 中字幕久久久人妻熟女天美传媒| 色偷偷7777www| 看看妇女的B免费看| 国产精品1区在线播放| 18禁止观看免费私人影院| 天天综合亚洲综合网站| 蜜桃成熟时2在线观看完整版hd| 国产精品久久久久秋霞影视| 97免费观看视频| 亚洲国产精品久久无套麻豆| 青柠在线观看免费播放电影| 九九热这里有精品|