如何檢出遠程 Git 分支

已發表: 2023-01-23
顯示 bash 提示符的 Linux 筆記本電腦
fatmawati achmad zaenuri/Shutterstock.com
要從遠程存儲庫簽出分支,請使用“git fetch”命令,然後使用“git branch -r”列出遠程分支。 選擇您需要的分支並使用“git checkout -b new-branch-name origin/remote-branch-name”形式的命令。 如果您使用多個存儲庫,請將 checkout 命令的“origin”部分更改為您希望從中檢出分支的遠程名稱。

如果您的開發團隊使用 Git,您最終將需要從遠程存儲庫中檢出其他人的工作作為一個分支。 與 Git 中的大多數分支操作一樣,切換到遠程分支實際上非常簡單。

目錄

Git、分支和遠程
尋找您當地的分支機構
簽出遠程分支
處理名稱衝突
處理多個遠程存儲庫
結帳前

Git、分支和遠程

Git 的理念是經常分支。 分支允許在不改變主代碼庫的情況下進行開發。 當您對新的、經過測試的代碼準備就緒感到滿意時,您可以將新分支合併到另一個分支中。 通常,這是主分支或主分支,但您可以合併任意兩個分支。

由於這種靈活性,以及​​ Git 處理分支和合併的輕量級和快速方式,分支發生了變化。 在舊版本控制系統中,分支是一件大事。 分支和合併很慢而且容易出錯。 Git 為開發人員提供了簡單、快速的分支,用於支持許多不同的工作流程。

如果您作為使用 Git 的開發團隊的一員工作或自願參加,您將擁有一個“中央”Git 存儲庫,該存儲庫遠離每個軟件工程師的計算機。 這稱為遠程存儲庫,或簡稱為“遠程”。 這是執行推送時發送到本地存儲庫的提交和更改的位置。

當然,這也是其他開發人員正在做的事情。 這使得協作變得容易。 如果您需要訪問其他開發人員的工作,您只需從遠程存儲庫的分支中檢索他們的代碼。 如果他們需要訪問您的工作,他們將從跟踪您的本地分支之一的存儲庫中的分支檢索您的代碼。

在 Git 中,一個開發項目可以有多個遠程。 但是,本地分支只能跟踪單個遠程分支。 因此,只要您使用適當的遙控器,檢查具有多個遙控器的遠程分支與使用單個遙控器是一樣的。

尋找您當地的分支機構

您需要避免名稱衝突。 如果您有一個本地分支恰好與您要檢出的遠程分支同名,您有兩種選擇。 您可以重命名本地分支並檢出遠程分支。 這樣,跟踪遠程分支的本地分支與遠程分支具有相同的名稱。 或者,您可以簽出遠程分支並告訴 Git 使用新名稱創建本地跟踪分支。

要找出本地存儲庫中分支的名稱,請使用git branch命令。

 分支

使用 git branch 命令列出本地分支

這個本地存儲庫有一個 master 分支和三個其他分支。 星號表示哪個是當前分支。 從一個分支移動到另一個分支需要簽出您要使用的分支。

 git checkout 新功能
混帳狀態

使用 git checkout 命令檢出本地分支

第一個命令為我們更改了分支,因此“new-feature”是當前分支。 git status命令為我們驗證了這一點。

我們可以在分支之間來回跳轉,提交新更改,從遠程拉取更新,並將本地更新推送到遠程。

相關:如何更新和維護單獨的 Git 分支

簽出遠程分支

遠程存儲庫中有一個分支在我們的機器上不存在。 一位名叫 Mary 的開發人員創建了一項新功能。 我們想切換到那個遠程分支,這樣我們就可以在本地構建那個版本的軟件。

如果我們執行fetch ,Git 將從遠程存儲庫中拉回元數據。

 git 獲取

使用 git fetch 命令檢索有關遠程存儲庫的元數據

因為這是自 Mary 將她的分支推送到遠程存儲庫以來我們完成的第一次fetch ,我們被告知有一個名為“origin/mary-feature”的新分支。 添加到項目的第一個遠程存儲庫的默認名稱是“origin”。

無論我們是否看到此消息,我們總是可以要求 Git 列出遠程存儲庫中的分支。

-r (遠程)選項告訴 Git 報告遠程存儲庫上的分支。

 git 分支 -r 

使用 git branch -r 命令列出遠程分支

這裡要注意的一點是 Git 正在檢查遠程元數據的本地副本。 這就是為什麼我們使用git fetch命令來確保元數據的本地副本是最新的。

如何選擇適合您團隊的 Git 工作流和分支模型
相關如何選擇適合您團隊的 Git 工作流和分支模型

一旦我們找到了我們想要的分支,我們就可以繼續檢查它了。 我們使用帶有-b (分支)選項的git checkout命令,後跟我們將用於本地分支的名稱,然後是遠程分支的名稱。

 git checkout -b mary-feature origin/mary-feature 

使用 git checkout -b 命令檢出遠程分支

我們可以看到我們已經簽出遠程分支並創建了一個本地分支來跟踪遠程分支中的更改。

 分支

使用 git branch 命令列出本地分支,並選擇遠程分支的新創建副本作為當前分支

我們新的本地分支機構現在是我們當前的工作分支機構。

處理名稱衝突

如果您有一個與遠程分支同名的本地分支,您可以在簽出遠程分支之前重命名本地分支,或者簽出遠程分支並指定不同的本地分支名稱。

要將遠程分支檢出到一個不同名稱的本地分支,我們可以使用與之前相同的命令,並選擇一個新的本地分支名稱。

 git checkout -b mary-test origin/mary-feature 

使用 git checkout -b 命令檢出遠程分支,本地分支與遠程分支具有不同的名稱

這將創建一個名為“mary-test”的本地分支,它將跟踪對該分支的本地提交。 推送將轉到遠程“origin/mary-feature”分支。

這可能是處理本地名稱衝突的最佳方式。 如果你真的想保持本地和遠程分支的名稱相同,你需要在簽出遠程之前重命名你的本地分支。 在 Git 中重命名分支是微不足道的。

 git branch -m mary-feature 老瑪麗分支

使用 git branch -m 命令重命名分支

您現在可以檢查遠程“origin/mary-feature”分支了。

處理多個遠程存儲庫

如果您配置了多個遠程存儲庫,則在簽出遠程分支時需要注意使用適當的存儲庫。

要列出您的遠程存儲庫,請使用帶有-v (查看)選項的remote命令。

 git遠程-v 

使用 git remote -v 命令列出遠程倉庫

要查看所有可用分支,我們需要從所有遠程獲取元數據,然後列出遠程分支。

 git fetch --all
 git 分支 --all 

使用 git fetch --all 更新本地元數據並使用 git branch --all 列出本地和遠程的所有分支

我們可以看到我們想要的分支在“origin”遠程。 檢查它的命令與我們已經使用過的格式相同。 我們需要指定遠程名稱“origin”以及分支名稱“mary-feature”。

 git checkout -b mary-feature origin/mary-feature 

使用 git checkout -b 命令檢出遠程分支,使用遠程名稱和分支名稱

相關:如何切換、添加和刪除 Git 遙控器

結帳前

在您結賬之前,請記住一些事情,您會沒事的。

確保避免名稱衝突。 如果您有一個與遠程分支同名的本地分支,請決定是重命名本地分支還是創建一個具有不同名稱的分支來跟踪遠程分支。

如果您使用多個遠程存儲庫,請確保使用正確的遠程存儲庫。

相關: Git rebase:你需要知道的一切