git fetch 與 git pull
git fetch和git 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 pull是git fetch和git 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 \\還原暫存的內容