最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年07月21日 15:32:41   作者:R-H-R  
這篇文章主要介紹了git fetch與git pull的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

git fetch和git pull都可以將遠(yuǎn)端倉庫更新至本地那么他們之間有何區(qū)別?想要弄清楚這個(gè)問題有有幾個(gè)概念不得不提。

FETCH_HEAD: 是一個(gè)版本鏈接,記錄在本地的一個(gè)文件中,指向著目前已經(jīng)從遠(yuǎn)程倉庫取下來的分支的末端版本。 

commit-id:在每次本地工作完成后,都會(huì)做一個(gè)git commit 操作來保存當(dāng)前工作到本地的repo, 此時(shí)會(huì)產(chǎn)生一個(gè)commit-id,這是一個(gè)能唯一標(biāo)識(shí)一個(gè)版本的序列號(hào)。 在使用git push后,這個(gè)序列號(hào)還會(huì)同步到遠(yuǎn)程倉庫。

有了以上的概念再來說說git fetch

git fetch:這將更新git remote 中所有的遠(yuǎn)程倉庫所包含分支的最新commit-id, 將其記錄到.git/FETCH_HEAD文件中
git fetch更新遠(yuǎn)程倉庫的方式如下:

git fetch origin master:tmp 
//在本地新建一個(gè)temp分支,并將遠(yuǎn)程origin倉庫的master分支代碼下載到本地temp分支
git diff tmp 
//來比較本地代碼與剛剛從遠(yuǎn)程下載下來的代碼的區(qū)別
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用這步刪除

(1)如果直接使用git fetch,則步驟如下:

  • 創(chuàng)建并更新本 地遠(yuǎn)程分支。即創(chuàng)建并更新origin/xxx 分支,拉取代碼到origin/xxx分支上。
  • 在FETCH_HEAD中設(shè)定當(dāng)前分支-origin/當(dāng)前分支對應(yīng),如直接到時(shí)候git merge就可以將origin/abc合并到abc分支上。

(2)git fetch origin
只是手動(dòng)指定了要fetch的remote。在不指定分支時(shí)通常默認(rèn)為master

(3)git fetch origin dev 
指定遠(yuǎn)程remote和FETCH_HEAD,并且只拉取該分支的提交。

這個(gè)命令會(huì)訪問遠(yuǎn)程倉庫,從中拉取所有你還沒有的數(shù)據(jù)。 執(zhí)行完成后,你將會(huì)擁有那個(gè)遠(yuǎn)程倉庫中所有分支的引用,可以隨時(shí)合并或查看。

如果你使用git clone 命令克隆了一個(gè)倉庫,命令會(huì)自動(dòng)將其添加為遠(yuǎn)程倉庫(git remote -v)并默認(rèn)以 “origin” 為簡寫。 所以,git fetch origin 會(huì)抓取克?。ɑ蛏弦淮巫ト。┖笮峦扑偷乃泄ぷ?。 必須注意 git fetch 命令會(huì)將數(shù)據(jù)拉取到你的本地倉庫 - 它并不會(huì)自動(dòng)合并或修改你當(dāng)前的工作。 當(dāng)準(zhǔn)備好時(shí)你必須手動(dòng)將其合并入你的工作。

如果你有一個(gè)分支設(shè)置為跟蹤一個(gè)遠(yuǎn)程分支,可以使用 git pull命令來自動(dòng)的抓取然后合并遠(yuǎn)程分支到當(dāng)前分支。 這對你來說可能是一個(gè)更簡單或更舒服的工作流程;默認(rèn)情況下,git clone 命令會(huì)自動(dòng)設(shè)置本地 master 分支跟蹤克隆的遠(yuǎn)程倉庫的 master 分支(或不管是什么名字的默認(rèn)分支)。 運(yùn)行 git pull 通常會(huì)從最初克隆的服務(wù)器上抓取數(shù)據(jù)并自動(dòng)嘗試合并到當(dāng)前所在的分支。

git pull : 首先,基于本地的FETCH_HEAD記錄,比對本地的FETCH_HEAD記錄與遠(yuǎn)程倉庫的版本號(hào),然后git fetch 獲得當(dāng)前指向的遠(yuǎn)程分支的后續(xù)版本的數(shù)據(jù),然后再利用git merge將其與本地的當(dāng)前分支合并。所以可以認(rèn)為git pull是git fetch和git merge兩個(gè)步驟的結(jié)合。

git pull的用法如下:

git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
//取回遠(yuǎn)程主機(jī)某個(gè)分支的更新,再與本地的指定分支合并。

因此,與git pull相比git fetch相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地,但不會(huì)自動(dòng)merge。如果需要有選擇的合并git fetch是更好的選擇。效果相同時(shí)git pull將更為快捷。

注:用git pull更新代碼的話就比較簡單暴力了但是根據(jù)commit ID來看的話,他們實(shí)際的實(shí)現(xiàn)原理是不一樣的,所以不要用git pull,用git fetch和git merge更加安全。

到此這篇關(guān)于git fetch與git pull的區(qū)別詳解的文章就介紹到這了,更多相關(guān)git fetch與git pull區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 代碼著色之SyntaxHighlighter項(xiàng)目(最流行的代碼高亮)

    代碼著色之SyntaxHighlighter項(xiàng)目(最流行的代碼高亮)

    dp.SyntaxHighlighter。它可以在網(wǎng)頁中對各種程序源代碼語法進(jìn)行加亮顯示。支持當(dāng)前流 行的各種編程語言:C#、CSS、C++、Delphi、Java、JavaScript、PHP、Python、Ruby、SQL、Visual Basic、XML / HTML等
    2014-04-04
  • Git拒絕推送(Push Rejected)問題全解析與解決方案

    Git拒絕推送(Push Rejected)問題全解析與解決方案

    在使用Git進(jìn)行協(xié)作開發(fā)時(shí),拒絕推送(push rejected) 是一個(gè)高頻且令人困擾的問題,當(dāng)我們滿懷信心地執(zhí)行g(shù)it push,卻收到一連串報(bào)錯(cuò)信息,本文將圍繞Git拒絕推送的常見場景、底層原因及系統(tǒng)化解決方案 展開,結(jié)合實(shí)際開發(fā)經(jīng)驗(yàn)進(jìn)行深入分析,需要的朋友可以參考下
    2026-01-01
  • 如何使用clion中配置ROS工程

    如何使用clion中配置ROS工程

    這篇文章主要介紹了如何使用clion中配置ROS工程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • VSCode中ESLint插件修復(fù)以及配置教程

    VSCode中ESLint插件修復(fù)以及配置教程

    最近為vsocde配置Eslint出現(xiàn)了許多問題,我解決問題之后,覺得還是把這些坑都寫清楚,方便學(xué)習(xí)前端的初學(xué)者,下面這篇文章主要給大家介紹了關(guān)于VSCode中ESLint插件修復(fù)以及配置教程的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vscode使用git的配置教程

    vscode使用git的配置教程

    在vscode中使用Git可以幫助我們更方便地管理代碼,進(jìn)行版本控制,下面通過本文給大家介紹vscode使用git的配置教程,感興趣的朋友一起看看吧
    2024-08-08
  • 使用IDEA回滾某次提交的代碼步驟

    使用IDEA回滾某次提交的代碼步驟

    這篇文章主要介紹了使用IDEA回滾某次提交的代碼步驟,在平時(shí)的開發(fā)中,不小心commit了錯(cuò)誤的代碼怎么辦,就需要用到回滾了,需要的朋友可以參考下
    2023-03-03
  • vscode如何設(shè)置默認(rèn)打開的瀏覽器為Chrome

    vscode如何設(shè)置默認(rèn)打開的瀏覽器為Chrome

    這篇文章主要介紹了vscode如何設(shè)置默認(rèn)打開的瀏覽器為Chrome,需要的朋友可以參考下
    2020-08-08
  • 解析scratch3.0二次開發(fā)之scratch-blocks免編譯修改問題

    解析scratch3.0二次開發(fā)之scratch-blocks免編譯修改問題

    大家在使用scratch-blocks編譯時(shí)會(huì)遇到scratch-gui依賴的scratch-blocks模塊在安裝的時(shí)候編譯會(huì)報(bào)錯(cuò),針對這個(gè)問題我們該怎么解決呢,下面小編給大家?guī)砹藄cratch3.0二次開發(fā)之scratch-blocks免編譯修改方法,感興趣的朋友一起看看吧
    2021-08-08
  • 微信 小程序開發(fā)環(huán)境搭建詳細(xì)介紹

    微信 小程序開發(fā)環(huán)境搭建詳細(xì)介紹

    這篇文章主要介紹了微信 小程序開發(fā)環(huán)境搭建詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 如何使用Idea進(jìn)行合并代碼分支

    如何使用Idea進(jìn)行合并代碼分支

    這篇文章主要介紹了如何使用Idea進(jìn)行合并代碼分支,在平時(shí)的開發(fā)中大多是協(xié)作開發(fā)的,代碼統(tǒng)一放在一起,那么需要代碼合并時(shí)該怎么操作,需要的朋友可以參考下
    2023-03-03

最新評論

进贤县| 汤原县| 道孚县| 虞城县| 聂拉木县| 禹城市| 房产| 墨江| 察哈| 镇宁| 平谷区| 天祝| 辰溪县| 聂拉木县| 南华县| 广宁县| 安庆市| 西丰县| 崇信县| 黎城县| 英吉沙县| 淅川县| 达拉特旗| 朝阳市| 芦山县| 德清县| 桐梓县| 慈溪市| 聂荣县| 建阳市| 碌曲县| 兰西县| 毕节市| 共和县| 西华县| 英超| 灵璧县| 汶川县| 崇文区| 濉溪县| 赤壁市|