git補充(fetch和rebase)


有一個遠程倉庫origin:
    在這里插入圖片描述

本地在此基礎上又進行了兩次提交:
    在這里插入圖片描述

這時候其他人進行了一次遠程push:
    在這里插入圖片描述

因為git是分布式的,原則上可以不用連服務器,所以此時本地並不知道遠程分支已經變更(本地的origin/master已經過時):
    在這里插入圖片描述

git fetch命令會將遠程最新的版本拉取到本地,但是並不會影響本地的分支線:
git fetch <遠程主機名> <遠程分支>
    在這里插入圖片描述

 

git meger會將本地和遠程的最新提交混合起來,並生成新的最新提交(混合並解決沖突后的提交):
    在這里插入圖片描述

git pull命令等於git fetch + git meger命令。

 

我們再看下上面git fetch命令后的本地狀態:
    在這里插入圖片描述

這時候我們並不想混合提交,而是想在C2的基礎上直接提交L2和L3,這時候在提交歷史線上不會有分支線。這個可以用git rebase命令實現:
    在這里插入圖片描述

 

 

日常開發步驟如下:

  1. git fetch
  2. git rebase
  3. 解決沖突
  4. git add 沖突文件
  5. git rebase –continue
  6. git push

其中,3、4、5點,如果沒遇到沖突就不用進行,直接push上去。

當遇到沖突時,git會提示patch failed,並要我們解決問題了再執行git rebase --continue

    git rebase patch failed

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM