<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
git fetch是將遠端主機的最新內容拉到本地,使用者在檢查了以後決定是否合併到工作本機分支中。
而git pull 則是將遠端主機的最新內容拉下來後直接合並,即:git pull = git fetch + git merge,這樣可能會產生衝突,需要手動解決。
先在作用上他們的功能是大致相同的,都是起到了更新程式碼的作用。
首先我們要說簡單說git的執行機制。git分為本地倉庫和遠端倉庫,我們一般情況都是寫完程式碼,commit到本地倉庫(生成本地倉的commit ID,代表當前提交程式碼的版本號),然後push到遠端倉庫(記錄這個版本號),這個流程大家都熟悉。
我們原生的git資料夾裡面對應也儲存了git本地倉庫master分支的commit ID 和 跟蹤的遠端分支orign/master的commit ID(可以有多個遠端倉庫)。那什麼是跟蹤的遠端分支呢,開啟git資料夾可以看到如下檔案:
.git/refs/head/[本地分支]
.git/refs/remotes/[正在跟蹤的分支]
其中head就是本地分支,remotes是跟蹤的遠端分支,這個型別的分支在某種型別上是十分相似的,他們都是表示提交的SHA1校驗和(就是commitID)。但是,不管他們是如何的相似,他們還是有一個重大的區別:更改遠端跟蹤分支只能用git fetch,或者是git push後作為副產品(side-effect)來改變。我們無法直接對遠端跟蹤分支操作,我們必須先切回本地分支然後建立一個新的commit提交。
拉取不同
1、Git fetch:Git fetch會將資料拉取到本地倉庫 - 它並不會自動合併或修改當前的工作。
2、git pull:git pull是從遠端獲取最新版本並merge到本地,會自動合併或修改當前的工作。
commitID不同
1、Git fetch:使用Git fetch更新程式碼,原生的庫中master的commitID不變,還是等於1。
2、git pull:使用git pull更新程式碼,原生的庫中master的commitID發生改變,變成了2。
分支(branch)的基本操作
git branch //檢視本地所有分支 git branch -r //檢視遠端所有分支 git branch -a //檢視本地和遠端的所有分支 git branch <branchname> //新建分支 git branch -d <branchname> //刪除本地分支 git branch -d -r <branchname> //刪除遠端分支,刪除後還需推播到伺服器 git push origin:<branchname> //刪除後推播至伺服器 git branch -m <oldbranch> <newbranch> //重新命名本地分支 /** *重新命名遠端分支: *1、刪除遠端待修改分支 *2、push本地新分支到遠端伺服器 */ //git中一些選項解釋: -d --delete:刪除 -D --delete --force的快捷鍵 -f --force:強制 -m --move:移動或重新命名 -M --move --force的快捷鍵 -r --remote:遠端 -a --all:所有
git fetch 命令:
$ git fetch <遠端主機名> //這個命令將某個遠端主機的更新全部取回本地
如果只想取回特定分支的更新,可以指定分支名:
$ git fetch <遠端主機名> <分支名> //注意之間有空格
最常見的命令如取回origin 主機的master 分支:
$ git fetch origin master
取回更新後,會返回一個FETCH_HEAD ,指的是某個branch在伺服器上的最新狀態,我們可以在本地通過它檢視剛取回的更新資訊:
$ git log -p FETCH_HEAD
可以看到返回的資訊包括更新的檔名,更新的作者和時間,以及更新的程式碼(19行紅色[刪除]和綠色[新增]部分)。
我們可以通過這些資訊來判斷是否產生衝突,以確定是否將更新merge到當前分支。
前面提到,git pull 的過程可以理解為
git fetch origin master //從遠端主機的master分支拉取最新內容 git merge FETCH_HEAD //將拉取下來的最新內容合併到當前所在的分支中
即將遠端主機的某個分支的更新取回,並與本地指定的分支合併,完整格式可表示為:
$ git pull <遠端主機名> <遠端分支名>:<本地分支名>
如果遠端分支是與當前分支合併,則冒號後面的部分可以省略:
$ git pull origin next
5.拉取遠端分支
git fetch //程式碼拉取到本地之後 git branch //檢視分支 git checkout 遠端分支的分支名
參考文章
https://blog.csdn.net/qq_36113598/article/details/78906882
https://blog.csdn.net/weixin_41975655/article/details/82887273
到此這篇關於git fetch和git pull的區別的文章就介紹到這了,更多相關git fetch和git pull的區別內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45