国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于git的遠程分支的詳細介紹

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

掃碼添加小助手

加入工程師交流群

不知道大家有沒有經歷過,當我們切換到了一個新的分支想要提交代碼的時候,總會遇到這樣的錯誤。

我們把日志里的英文翻譯過來是說,我們當前的分支沒有設置任何上游分支。然后git提示我們可以運行下面這行代碼來設置遠程的上游,這樣我們就可以push成功了。

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

那么這是什么原因呢?這個origin分支又是什么意思呢?我們今天就來討論一下這個問題。

遠程分支

遠程分支其實就是遠程代碼倉庫當中的分支,比如我們的repo如果是存在github的,那么這個遠程倉庫就是github,如果是存在gitlab的,那么這個倉庫就是gitlab,如果是其他的倉庫也是一樣的道理。

當我們在使用git clone的時候,git會自動地將這個遠程的repo命名為origin,拉取它所有的數據之后,創建一個指向它master的指針,命名為origin/master,之后會在本地創建一個指向同樣位置的指針,命名為master,和遠程的master作為區分。

也就是說,origin的含義指的是遠程的倉庫。它只是一個標記,就和默認分支叫做master一樣,本身并沒有特別的含義。如果我們愿意也可以起其他的名字,但是一般沒有人這么干。比如我們在clone的時候可以添加一個參數-o給遠程的repo起一個別名:

git clone -o chengzhi

這樣一來,遠程的這個repo就會被命名為chengzhi,代替原本的origin。但是這樣除了裝逼和增加成本之外,沒有任何用處,不推薦這么干。

操作命令

還記得我們之前在介紹git的時候曾經說過遠程repo的作用,就是為了防止本地的代碼錯亂,所以在遠程留一份備份。這樣即使我們的代碼完蛋了,至少還可以找到備份。

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

代碼拉取

我們先說代碼拉取,說到代碼拉取大家的第一反應可能是git pull。但是其實git pull并不是嚴格意義上的代碼拉取命令,至少它還不是最細粒度,其實還有一個比git pull更加細粒度的操作。它就是——git fetch。

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

當我們使用git checkout切換過去的時候,可以不必加上origin,git會自動生成一個本地的分支指針,也指向同樣的節點。它相當于我們執行了git checkout -b test origin/test。說到這里就需要提一下git pull和git fetch的區別了,這兩者從表面上來看都是拉取遠程的改動。但是兩者針對的范圍不同,git fetch針對遠程的所有改動,而git pull只針對當前分支對應的遠程分支。另外git pull執行之后會將遠程的改動merge到本地的分支,也就是說它其實多了一步merge的操作。

代碼推送

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

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

最完整的push命令是應該寫成這樣的:

git push origin test:cz/test

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

如果我們設置過當前test分支的上游是遠程的test,或者本地的test就是從origin拷貝過來的,那么我們可以直接git push,它會自動將本地的分支與遠程關聯上,會方便很多。實際上我們大多數的push操作都是這么進行的。將本地分支和遠程建立映射可以使用這個命令:

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

它表示的是將本地的master和遠程的master進行關聯,設置過關聯之后我們只需要git push和git pull就可以更新和推送這個分支了,會方便很多。

關于遠程分支還有一些內容我們沒有涉及,比如如何跟蹤遠程的分支,如何刪除等等。由于這些內容幾乎用不到,我們即使強行記住了到時候也會忘記,所以就不多贅述了。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73960
  • Git
    Git
    +關注

    關注

    0

    文章

    207

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

    Git是一個開源的分布式版本控制系統,由Linux之父Linus Torvalds于2005年用C語言開發,主要是為了幫助管理Linux內核開發而創建的一個開放源碼的版本控制軟件。Git與常用的版本
    的頭像 發表于 01-30 16:47 ?1320次閱讀

    關于MT6901的直線DEMO介紹

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

    電纜接地箱與電纜分支箱區別與聯系

    電纜接地箱和電纜分支箱是功能完全不同的兩種電力設備。簡單來說,接地箱是電纜的“安全衛士”,主要負責處理電纜金屬護層的接地,防止感應電壓危害;而分支箱則是電力的“交通樞紐”,主要負責電能的分配和轉接。
    的頭像 發表于 01-04 09:25 ?419次閱讀
    電纜接地箱與電纜<b class='flag-5'>分支</b>箱區別與聯系

    PLC遠程控制不求人,手把手教你詳細設置方法

    在現代工業自動化中,PLC遠程控制功能越來越重要,尤其是在設備分布廣泛或環境復雜的場景中。通過無線通信技術,可以實現PLC的遠程控制,顯著提高生產效率和運維便捷性。本文將詳細介紹基于無
    的頭像 發表于 12-24 11:36 ?264次閱讀
    PLC<b class='flag-5'>遠程</b>控制不求人,手把手教你<b class='flag-5'>詳細</b>設置方法

    能否詳細介紹一下MOSFET在電機控制中的作用是什么?

    能否詳細介紹一下MOSFET在電機控制中的作用?
    發表于 12-22 13:11

    關于NFC鎳鋅鐵氧體片的介紹

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

    C語言的分支結構介紹

    1.簡單if語句 C語言中的分支結構語句中的if條件語句。 簡單if語句的基本結構如下: 代碼語言:javascript if(表達式) { 執行代碼塊; } 其語義是:如果表達式的值為真,則執行其后的語句,否則不執行該語句。 注意:if()后面沒有分號,直接寫{}
    發表于 11-25 07:48

    關于系統鏈接腳本的介紹

    一、隊伍介紹 本篇為蜂鳥E203系列分享第四篇,本篇介紹的內容是系統鏈接腳本。 二、如何實現不同的下載模式? 實現三種不同的程序運行方式,可通過makefile的命令行指定不同的鏈接腳本,從而實現
    發表于 10-30 08:26

    蜂鳥E203簡單分支預測的改進

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

    提高條件分支指令預測正確率的方法

    基于全局分支歷史的ghare分支預測器 主要構成 分支目標緩沖器BTB 分支歷史寄存器BHR 方式歷史寄存器PHT 對于某個條件分支指令
    發表于 10-22 08:22

    基于全局預測歷史的gshare分支預測器的實現細節

    GShare預測機制簡介 GShare預測機制作為一種常用的分支預測機制,通過基于分支歷史和分支地址來預測分支指令的執行路徑。分支歷史是指
    發表于 10-22 06:50

    CAN總線遠程調試工具介紹

    一種工程機械領域調試上的創新產品,可用于Codesys 源程序的無線下載聯機、遠程調試、故障診斷、CAN 總線數據在線監控、透傳收發、數據采集、數據分析、遠程控制等各種 CAN 總線通訊的場景。
    發表于 10-17 16:14 ?0次下載

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

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

    如何統計蜂鳥E203的分支預測率?

    想請問大家如何統計蜂鳥E203的分支預測率,我嘗試在exu_commit模塊里統計,但是發現預測率都有寫問題,想請教以下大家
    發表于 06-10 07:05

    溫濕度變送器功能有哪些?一文詳細解析

    對于很多行業來說,精確的測量以及控制溫度和濕度至關重要。想要達到這個目的,往往需要用到溫濕度變送器。那么,溫濕度變送器究竟有哪些功能呢?下面為大家詳細介紹。 一、精確測量溫濕度 溫濕度變送器的核心
    發表于 06-03 10:56