git fetch 與 git pull 的區(qū)別

git fetch 與 git pull

git fetchgit pull命令都是將遠端倉庫代碼更新至本地,那么他們兩者有什么區(qū)別呢?
簡單概括兩者區(qū)別如圖所示:

git fetch 與 git pull 圖解

git fetch:是將遠程主機的最新內容拉到本地,用戶在檢查了以后決定是否合并到工作本機分支中。具體操作如下:

git  fetch origin master:temp 
\\本地新建一個temp分支,并將遠程origin倉庫的master分支代碼下載到本地temp分支
git diff temp
\\比較遠程代碼與本地代碼的區(qū)別
git merge temp
\\將temp分支合并到本地master分支
git branch -d temp
\\如果不想保留分支,可以將其刪除

git pull:基于本地的FETCH_HEAD記錄,比對本地的FETCH_HEAD與遠程倉庫的版本號,然后git fetch獲得當前的遠程分支的后續(xù)版本的數據,然后利用git merge將其與本地的分支合并,可以認為是git pullgit fetchgit merge兩個步驟的合并。
實際的git pull 過程可以理解為:

git fetch origin master  \\將遠端的master分支拉取最新內容
git merge FETCH_HEAD \\將拉取的最新內容與當前分支合并

git pull用法:

git pull <遠程主機名>  <遠程分支名>:<本地分支名>
\\將遠程主機的某個分支,與本地的指定分支合并

git pull合并后可能會出現沖突,需要手動解決沖突。
出現的錯誤提示如下

error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.
\\更新的代碼與本地的修改代碼有沖突,先提交你的改變或者先將本地修改暫存起來

解決沖突的方式:先將本地的代碼暫存

git stash \\先將本地修改暫存起來
git stash list  \\查看保存信息
git pull     \\拉取內容
git stash pop   \\還原暫存的內容

參考文章

詳解 git fetch 與 git pull 區(qū)別
處理git pull 沖突

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容