chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于git的遠(yuǎn)程分支的詳細(xì)介紹

454398 ? 來(lái)源:itpub技術(shù)棧 ? 作者:chengycz ? 2020-10-11 10:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

不知道大家有沒(méi)有經(jīng)歷過(guò),當(dāng)我們切換到了一個(gè)新的分支想要提交代碼的時(shí)候,總會(huì)遇到這樣的錯(cuò)誤。

我們把日志里的英文翻譯過(guò)來(lái)是說(shuō),我們當(dāng)前的分支沒(méi)有設(shè)置任何上游分支。然后git提示我們可以運(yùn)行下面這行代碼來(lái)設(shè)置遠(yuǎn)程的上游,這樣我們就可以push成功了。

當(dāng)然如果我們push的時(shí)候執(zhí)行的不是git push,而是后面再加上origin的話,就可以push成功了。比如這樣:

那么這是什么原因呢?這個(gè)origin分支又是什么意思呢?我們今天就來(lái)討論一下這個(gè)問(wèn)題。

遠(yuǎn)程分支

遠(yuǎn)程分支其實(shí)就是遠(yuǎn)程代碼倉(cāng)庫(kù)當(dāng)中的分支,比如我們的repo如果是存在github的,那么這個(gè)遠(yuǎn)程倉(cāng)庫(kù)就是github,如果是存在gitlab的,那么這個(gè)倉(cāng)庫(kù)就是gitlab,如果是其他的倉(cāng)庫(kù)也是一樣的道理。

當(dāng)我們?cè)谑褂胓it clone的時(shí)候,git會(huì)自動(dòng)地將這個(gè)遠(yuǎn)程的repo命名為origin,拉取它所有的數(shù)據(jù)之后,創(chuàng)建一個(gè)指向它master的指針,命名為origin/master,之后會(huì)在本地創(chuàng)建一個(gè)指向同樣位置的指針,命名為master,和遠(yuǎn)程的master作為區(qū)分。

也就是說(shuō),origin的含義指的是遠(yuǎn)程的倉(cāng)庫(kù)。它只是一個(gè)標(biāo)記,就和默認(rèn)分支叫做master一樣,本身并沒(méi)有特別的含義。如果我們?cè)敢庖部梢云鹌渌拿郑且话銢](méi)有人這么干。比如我們?cè)赾lone的時(shí)候可以添加一個(gè)參數(shù)-o給遠(yuǎn)程的repo起一個(gè)別名:

git clone -o chengzhi

這樣一來(lái),遠(yuǎn)程的這個(gè)repo就會(huì)被命名為chengzhi,代替原本的origin。但是這樣除了裝逼和增加成本之外,沒(méi)有任何用處,不推薦這么干。

操作命令

還記得我們之前在介紹git的時(shí)候曾經(jīng)說(shuō)過(guò)遠(yuǎn)程repo的作用,就是為了防止本地的代碼錯(cuò)亂,所以在遠(yuǎn)程留一份備份。這樣即使我們的代碼完蛋了,至少還可以找到備份。

所以遠(yuǎn)程的repo最大的作用就是保留備份,既然要保留備份,那么我們本地和遠(yuǎn)程的代碼交互肯定是免不了的。大家可能都大概知道git pull從遠(yuǎn)程拉取,git push推送到遠(yuǎn)程,但是對(duì)于這其中的細(xì)節(jié)可能不太清楚。之前沒(méi)有詳細(xì)介紹過(guò)遠(yuǎn)程分支,所以也沒(méi)辦法深入,我們今天剛好聊到這個(gè)話題,正好好好說(shuō)道說(shuō)道。

代碼拉取

我們先說(shuō)代碼拉取,說(shuō)到代碼拉取大家的第一反應(yīng)可能是git pull。但是其實(shí)git pull并不是嚴(yán)格意義上的代碼拉取命令,至少它還不是最細(xì)粒度,其實(shí)還有一個(gè)比git pull更加細(xì)粒度的操作。它就是——git fetch。

實(shí)際上git fetch才是真正的代碼拉取的操作,它的作用是將遠(yuǎn)程的改動(dòng)同步到本地。當(dāng)我們執(zhí)行g(shù)it fetch origin的時(shí)候,這里的origin指的是遠(yuǎn)程的名字,如果你有多個(gè)遠(yuǎn)程的話要指定的話需要加上,否則可以不寫。它會(huì)把遠(yuǎn)程所有的改動(dòng)和分支都拉取到本地,命名為origin/xxx。origin的分支我們用git branch是看不到的,它只能看到本地的分支名,如果想要查看可以使用git branch -r。

當(dāng)我們使用git checkout切換過(guò)去的時(shí)候,可以不必加上origin,git會(huì)自動(dòng)生成一個(gè)本地的分支指針,也指向同樣的節(jié)點(diǎn)。它相當(dāng)于我們執(zhí)行了git checkout -b test origin/test。說(shuō)到這里就需要提一下git pull和git fetch的區(qū)別了,這兩者從表面上來(lái)看都是拉取遠(yuǎn)程的改動(dòng)。但是兩者針對(duì)的范圍不同,git fetch針對(duì)遠(yuǎn)程的所有改動(dòng),而git pull只針對(duì)當(dāng)前分支對(duì)應(yīng)的遠(yuǎn)程分支。另外git pull執(zhí)行之后會(huì)將遠(yuǎn)程的改動(dòng)merge到本地的分支,也就是說(shuō)它其實(shí)多了一步merge的操作。

代碼推送

說(shuō)到代碼推送回到了我們開頭的那個(gè)問(wèn)題,什么情況下git push就可以,什么情況下需要加上origin呢?

這里涉及一個(gè)機(jī)制就是本地的分支是不會(huì)自動(dòng)和遠(yuǎn)程同步的,比如遠(yuǎn)程有人創(chuàng)建了一個(gè)test分支,我們拉取到本地會(huì)叫做origin/test。我們也可以自己創(chuàng)建一個(gè)test分支,和它井水不犯河水。這也是為了方便,如果直接用名稱映射的話,可能會(huì)有潛在的沖突。并且由于可能會(huì)存在多個(gè)遠(yuǎn)程repo,所以我們push的時(shí)候也會(huì)有多種選擇。

最完整的push命令是應(yīng)該寫成這樣的:

git push origin test:cz/test

我們注意到這里用了一個(gè)奇怪的寫法test:cz/test,它的意思是說(shuō)將本地的test分支推送到遠(yuǎn)程作為cz/test分支。如果我們想要本地的名稱和遠(yuǎn)程一樣,我們可以省略簡(jiǎn)寫成:git push origin test。

如果我們?cè)O(shè)置過(guò)當(dāng)前test分支的上游是遠(yuǎn)程的test,或者本地的test就是從origin拷貝過(guò)來(lái)的,那么我們可以直接git push,它會(huì)自動(dòng)將本地的分支與遠(yuǎn)程關(guān)聯(lián)上,會(huì)方便很多。實(shí)際上我們大多數(shù)的push操作都是這么進(jìn)行的。將本地分支和遠(yuǎn)程建立映射可以使用這個(gè)命令:

git branch --set-upstream-to master origin/master

它表示的是將本地的master和遠(yuǎn)程的master進(jìn)行關(guān)聯(lián),設(shè)置過(guò)關(guān)聯(lián)之后我們只需要git push和git pull就可以更新和推送這個(gè)分支了,會(huì)方便很多。

關(guān)于遠(yuǎn)程分支還有一些內(nèi)容我們沒(méi)有涉及,比如如何跟蹤遠(yuǎn)程的分支,如何刪除等等。由于這些內(nèi)容幾乎用不到,我們即使強(qiáng)行記住了到時(shí)候也會(huì)忘記,所以就不多贅述了。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4959

    瀏覽量

    73585
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    16861
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式開發(fā)繞不開的版本管理工具——git

    Git是一個(gè)開源的分布式版本控制系統(tǒng),由Linux之父Linus Torvalds于2005年用C語(yǔ)言開發(fā),主要是為了幫助管理Linux內(nèi)核開發(fā)而創(chuàng)建的一個(gè)開放源碼的版本控制軟件。Git與常用的版本
    的頭像 發(fā)表于 01-30 16:47 ?1239次閱讀

    關(guān)于MT6901的直線DEMO介紹

    關(guān)于MT6901的直線DEMO介紹
    的頭像 發(fā)表于 01-30 10:54 ?165次閱讀
    <b class='flag-5'>關(guān)于</b>MT6901的直線DEMO<b class='flag-5'>介紹</b>

    電纜接地箱與電纜分支箱區(qū)別與聯(lián)系

    電纜接地箱和電纜分支箱是功能完全不同的兩種電力設(shè)備。簡(jiǎn)單來(lái)說(shuō),接地箱是電纜的“安全衛(wèi)士”,主要負(fù)責(zé)處理電纜金屬護(hù)層的接地,防止感應(yīng)電壓危害;而分支箱則是電力的“交通樞紐”,主要負(fù)責(zé)電能的分配和轉(zhuǎn)接。
    的頭像 發(fā)表于 01-04 09:25 ?250次閱讀
    電纜接地箱與電纜<b class='flag-5'>分支</b>箱區(qū)別與聯(lián)系

    PLC遠(yuǎn)程控制不求人,手把手教你詳細(xì)設(shè)置方法

    在現(xiàn)代工業(yè)自動(dòng)化中,PLC遠(yuǎn)程控制功能越來(lái)越重要,尤其是在設(shè)備分布廣泛或環(huán)境復(fù)雜的場(chǎng)景中。通過(guò)無(wú)線通信技術(shù),可以實(shí)現(xiàn)PLC的遠(yuǎn)程控制,顯著提高生產(chǎn)效率和運(yùn)維便捷性。本文將詳細(xì)介紹基于無(wú)
    的頭像 發(fā)表于 12-24 11:36 ?191次閱讀
    PLC<b class='flag-5'>遠(yuǎn)程</b>控制不求人,手把手教你<b class='flag-5'>詳細(xì)</b>設(shè)置方法

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用是什么?

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用?
    發(fā)表于 12-22 13:11

    關(guān)于NFC鎳鋅鐵氧體片的介紹

    關(guān)于NFC鎳鋅鐵氧體片的介紹
    的頭像 發(fā)表于 12-04 10:52 ?332次閱讀
    <b class='flag-5'>關(guān)于</b>NFC鎳鋅鐵氧體片的<b class='flag-5'>介紹</b>

    C語(yǔ)言的分支結(jié)構(gòu)介紹

    1.簡(jiǎn)單if語(yǔ)句 C語(yǔ)言中的分支結(jié)構(gòu)語(yǔ)句中的if條件語(yǔ)句。 簡(jiǎn)單if語(yǔ)句的基本結(jié)構(gòu)如下: 代碼語(yǔ)言:javascript if(表達(dá)式) { 執(zhí)行代碼塊; } 其語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。 注意:if()后面沒(méi)有分號(hào),直接寫{}
    發(fā)表于 11-25 07:48

    關(guān)于系統(tǒng)鏈接腳本的介紹

    一、隊(duì)伍介紹 本篇為蜂鳥E203系列分享第四篇,本篇介紹的內(nèi)容是系統(tǒng)鏈接腳本。 二、如何實(shí)現(xiàn)不同的下載模式? 實(shí)現(xiàn)三種不同的程序運(yùn)行方式,可通過(guò)makefile的命令行指定不同的鏈接腳本,從而實(shí)現(xiàn)
    發(fā)表于 10-30 08:26

    蜂鳥E203簡(jiǎn)單分支預(yù)測(cè)的改進(jìn)

    1.蜂鳥E203的原有分支預(yù)測(cè) 蜂鳥E203處理器為了能夠連續(xù)不斷的取指令,需要在每個(gè)時(shí)鐘周期都能生成一條待取的指令。因此,在取指令的階段,IFU單元模塊進(jìn)行了簡(jiǎn)單的譯碼處理,用以判別
    發(fā)表于 10-24 07:45

    提高條件分支指令預(yù)測(cè)正確率的方法

    基于全局分支歷史的ghare分支預(yù)測(cè)器 主要構(gòu)成 分支目標(biāo)緩沖器BTB 分支歷史寄存器BHR 方式歷史寄存器PHT 對(duì)于某個(gè)條件分支指令
    發(fā)表于 10-22 08:22

    基于全局預(yù)測(cè)歷史的gshare分支預(yù)測(cè)器的實(shí)現(xiàn)細(xì)節(jié)

    GShare預(yù)測(cè)機(jī)制簡(jiǎn)介 GShare預(yù)測(cè)機(jī)制作為一種常用的分支預(yù)測(cè)機(jī)制,通過(guò)基于分支歷史和分支地址來(lái)預(yù)測(cè)分支指令的執(zhí)行路徑。分支歷史是指
    發(fā)表于 10-22 06:50

    CAN總線遠(yuǎn)程調(diào)試工具介紹

    一種工程機(jī)械領(lǐng)域調(diào)試上的創(chuàng)新產(chǎn)品,可用于Codesys 源程序的無(wú)線下載聯(lián)機(jī)、遠(yuǎn)程調(diào)試、故障診斷、CAN 總線數(shù)據(jù)在線監(jiān)控、透?jìng)魇瞻l(fā)、數(shù)據(jù)采集、數(shù)據(jù)分析、遠(yuǎn)程控制等各種 CAN 總線通訊的場(chǎng)景。
    發(fā)表于 10-17 16:14 ?0次下載

    主流版本控制工具Git vs Perforce P4:架構(gòu)模式、性能、大文件管理及分支管理對(duì)比詳解

    Git vs Perforce P4,如何選型?架構(gòu)模式、性能、大文件管理、分支策略四大維度對(duì)比,幫你全面了解兩者的核心差異,選擇更合適你團(tuán)隊(duì)需求的版本控制系統(tǒng)。
    的頭像 發(fā)表于 06-13 14:52 ?724次閱讀
    主流版本控制工具<b class='flag-5'>Git</b> vs Perforce P4:架構(gòu)模式、性能、大文件管理及<b class='flag-5'>分支</b>管理對(duì)比詳解

    設(shè)備遠(yuǎn)程維護(hù)如何實(shí)現(xiàn)?遠(yuǎn)程維護(hù)平臺(tái)的功能特點(diǎn)

    隨著工業(yè)智能化和數(shù)字化轉(zhuǎn)型的快速推進(jìn),設(shè)備遠(yuǎn)程維護(hù)已成為企業(yè)提升運(yùn)營(yíng)效率、降低維護(hù)成本的重要手段。通過(guò)遠(yuǎn)程維護(hù)平臺(tái),企業(yè)能夠?qū)崟r(shí)監(jiān)控設(shè)備狀態(tài),快速響應(yīng)故障,實(shí)現(xiàn)設(shè)備的高效管理和維護(hù)。本文將詳細(xì)探討
    的頭像 發(fā)表于 02-21 15:50 ?1381次閱讀
    設(shè)備<b class='flag-5'>遠(yuǎn)程</b>維護(hù)如何實(shí)現(xiàn)?<b class='flag-5'>遠(yuǎn)程</b>維護(hù)平臺(tái)的功能特點(diǎn)

    直流高壓發(fā)生器詳細(xì)介紹

    ,提供詳細(xì)的技術(shù)支持指南,并通過(guò)具體案例展示如何處理和解決實(shí)際問(wèn)題。 一、選擇合適的直流高壓發(fā)生器 在選擇直流高壓發(fā)生器時(shí),需要綜合考慮多個(gè)因素,以確保設(shè)備能夠滿足特定需求。以下是選擇過(guò)程中應(yīng)重點(diǎn)關(guān)注
    發(fā)表于 02-19 09:51