簡體   English   中英

什么是本地分支,遠程跟蹤本地分支,遠程分支

[英]What are local branch,remote tracking local branch, remote branch

我最近開始與Git合作。 通常我使用Eclipse Egit,很少使用git shell。 在討論了有關Git及其分支的大量材料之后,我對此仍然感到困惑。

我知道關於同一主題的Stack Overflow上沒有n個問題,但到目前為止,我只是加深了困惑,或者對分支有了半熟的知識。 因此,關於我的理解,我要提出第n + 1個問題。

有人可以確認我的理解是否正確:

  1. 有兩種類型的分支:本地和遠程,其中本地分支是本地存儲庫上的分支,而遠程分支位於遠程存儲庫上
  2. 第三種類型的分支稱為“遠程跟蹤”分支,每當我們從遠程分支中獲取更改時,它都會自動調整其頭部以使其與分支的跟蹤相匹配。
  3. 因此,分支只能跟蹤某個遠程分支,而不能跟蹤任何本地分支。 這個對嗎?
  4. 克隆遠程存儲庫時,會自動創建兩種類型的分支,如下所示:
    1. 本地分支稱為主節點。
    2. 本地遠程跟蹤分支,它跟蹤遠程存儲庫的主分支。
  5. 我的本地主分支(在上文4.1中提到)可以跟蹤在本地(在4.2中提到)中創建的遠程跟蹤分支嗎?
  6. 如果是的話,我想它會自動設置為跟蹤該分支,這就是為什么我不必做任何特殊的事情就可以從我的工作目錄中獲取/將更改推送到遠程存儲庫的原因? 因此,當我使用Eclipse的團隊來獲取更改時,會發生以下情況
    1. 遠程分支中的更改來自本地遠程跟蹤分支(4.2)
    2. 由於我的本地主分支(4.1)設置為跟蹤遠程跟蹤brnach(4.2),因此它們進入了我的本地主分支(4.1)。
    3. 從我的master分支進入工作目錄吧?
  7. 當我嘗試推動更改時也會發生相反的情況對嗎?
  1. 真正
  2. 假。 遠程跟蹤分支機構只是本地分支機構。 當您從遠程存儲庫中獲取數據時,它們絕對不會自行調整。 曾經
  3. 真正
  4. 真正
  5. 不會。沒有本地主機和單獨的遠程跟蹤本地主機之類的東西。 只能有一個本地主機。
  6. 沒有任何意義
  7. 沒有任何意義

本地分支的遠程跟蹤能力僅影響pullpush操作。 但是不能fetch 當您鍵入這些命令時,它允許您省略一些參數。

例如,本地主機是遠程跟蹤源/主機。 要將新提交從原始/母版拉入本地母版,必須確保已檢出本地母版,然后:

git pull origin master

但是,由於master是遠程跟蹤的原點/ master,因此可以這樣說:

git pull

因此,遠程跟蹤主要是語法糖。

(供將來的讀者使用)

我同意問題作者從1到4的假設。但是(5)主機在獲取時無法跟蹤來源/主機。

提取(6)時,僅更新了原始服務器/主服務器,因此它正在跟蹤遠程分支(6.1。是)。

但是,對於本地管理員和工作困境,您必須合並或調整基准(甚至更好的是第二個基准)(6.2和6.3。是錯誤的)。

同樣,對於推送,您將主服務器推送到源服務器(遠程存儲庫的名稱)中。 本地存儲庫是提交工作目錄更改后的工作目錄,因此不會自動推送您的工作目錄,這是您的本地存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM