請注意,Git branches對於無縫的代碼協作至關重要。在這個指南中,我們將深入探討從遠程Git存儲庫檢索代碼的過程,重點是’git checkout remote branch’命令。
Not a reader? Explore this related video tutorial!
Not seeing the video? Ensure your ad blocker is disabled.
先決條件
- 本教程使用Windows 10上的Git SCM(源代碼管理)版本2.30,儘管它與任何支持Git的操作系統兼容。
Windows的其他潛在安裝方法包括Chocolatey和Git4Win。
- A remote Git repository from platforms like GitLab, GitHub, or Azure DevOps is required. This article provides sample repositories for a hands-on experience, or you can utilize your own.
了解遠程分支
Git存儲庫記錄並跟踪分支內一系列相關的提交。默認情況下,提交位於當前活動的分支中,通常被稱為main
或master
。
A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.
使用Git的branch
命令來找出可用的分支。被標記為星號(*
)的分支是目前的活躍分支。以下列出的分支皆為本地分支,因為尚未取得任何遠端分支。

git branch
command.掌握Git Checkout遠端分支
假設你有一個本地的Git倉庫,並需要與其他開發者合作。這就是Git的checkout
命令可以發揮作用的地方,它讓你能夠從遠端Git倉庫的遠端分支取得最新的提交。
一旦遠端分支被設定,Git將鏡像遠端分支,而不是僅是本地分支。以下是git checkout remote <branch>
命令的示例。
複製遠端Git倉庫
現在你已經有了一個現存的倉庫,是時候深入瞭解了。跟隨下列步驟將遠端倉庫複製到你機器上的本地資料夾。
1. 通常透過HTTPS URL複製遠端倉庫比使用SSH更簡單,因為這樣可以避開證書和防火牆的問題。
- 前往GitHub上的倉庫。
- 點擊代碼按鈕,並選擇HTTPS。
- 點擊連結旁的剪貼板圖標將URL複製到你的剪貼板。

2. 將 HTTPS URL 複製到剪貼板後,使用您偏好的命令列介面,例如 Windows Command Prompt 或 Windows Terminal。
3. 導航至您希望克隆存儲庫的文件夾。本教程將使用主目錄中的 git 文件夾,如截圖所示。執行以下命令來克隆存儲庫,這將創建一個包含遠程存儲庫的子文件夾。

4. 使用命令遍歷克隆的存儲庫,cd git-checkout-remote-branch
。
執行以下狀態命令以確定存儲庫是否成功克隆。Git status
命令顯示本地分支和遠程分支之間的差異,幫助確定您的分支是否連接且已更新!預設的 Git 遠程分支名稱為 origin
,添加到 main
遠程分支前綴。 git status

對於大多數現代的 Git 軟體來說,
main
是默認的主要分支。您可能會遇到一些舊應用程式,它們將master
用作默認分支名稱,但這兩個名稱在功能上是相同的。本教程使用的分支名稱是main
、RemoteBranch
、SomeBranch
和AnotherBranch
。
什麼是 Git 遠端,如何追蹤遠端分支
克隆存儲庫會自動創建一個對遠端來源的引用,稱為遠端。這個引用用於檢查新的提交或將新的更改推送到遠端存儲庫。
A Git repository itself may have multiple remotes, but a branch can only reference a single remote.
追蹤遠端分支建立了與本地分支的關係。這種關係使您可以輕鬆地將提交推送或拉取到遠端分支到本地分支。此外,被追蹤的分支確定了本地分支相對於遠端分支的提交進度。
列出 Git 存儲庫的遠端
首先,確保您正在使用的存儲庫具有任何 Git 遠端。為此,請使用以下顯示的 git remote
命令查看存儲庫中的 Git 遠端。在本示例中,顯示了兩個遠端,origin
和 remote2
。

兩個額外的被追蹤的遠端存儲庫名稱分別為
origin
和remote2
,您的遠端可能不同。
要獲取有關配置的遠程庫的更多詳細信息,添加v
選項以顯示完整的Git遠程庫URI。

您可能會想知道為什麼
fetch
和push
使用不同的URI。一些Git工作流允許您在不同的URI上檢查存儲庫的更新,而不是將更改發送到那裡,這稱為三角工作流。
查看可用的遠程分支
使用branch
命令顯示您存儲庫中的所有可用分支,包括本地和遠程分支。要顯示遠程分支,請在命令後添加all
選項,如下所示。
在下面的圖像中,顯示了本教程中使用的遠程庫origin。但是,此圖像省略了名為Remote2的遠程庫的所有分支。

如果您的遠程分支未顯示在分支列表中,您必須更新可用的遠程分支列表,如下一節所述。
更新可用的遠程分支
有時,遠程庫可能會添加或修改分支。為了確保您使用的是最新的分支,必須運行git fetch
命令。
fetch
命令连接到远程存储库,检索所有可用分支的列表。在运行 git fetch
命令后,查看当前跟踪的分支,以确保远程分支现在可见,如下所示。
下面,分支 remotes/origin/RemoteBranch
在执行 git fetch
命令后现在在可用的远程分支列表中可见。

git fetch
to update the list of available remote branches.fetch
命令仅检查来自当前跟踪的远程的更新。要使 Git 从存储库中的所有远程检查更新,无论跟踪状态如何,请添加 all
参数。
要从特定远程获取可用的分支,请在 git fetch
命令中包含远程名称,如下例中的 Remote2
,该例子检索分支 main
。

main
from remote2
with the git fetch
command.每當你用
git fetch
、git pull
或git push
檢查遠端更新時,Git會與遠端分支比較提交。本地分支可以追蹤任何Git遠端分支。此外,多個本地分支可以設定為追蹤相同的遠端分支。
查看每個分支的遠端追蹤情況
要查看追蹤的遠端分支與相對應的本地分支,使用帶有vv
參數的命令git branch
。命令結果會按照[<remote>/<branch>]
的格式顯示遠端和分支的列表,如下所示。

更改分支的遠端追蹤
可能需要將你的本地分支更改為追蹤不同的遠端分支。要將你當前的分支設定為特定的遠端分支,使用u
參數,如下所示。

檢出Git遠端分支
隨著在遠端Git倉庫創建新分支,你可能需要執行git檢出遠端分支操作。通過checkout
命令執行檢出遠端倉庫分支。
如果滿足以下條件,Git將自動確定正確的遠端,下載遠端分支的本地副本並將本地副本設置為跟蹤該遠端分支。通過git branch --all
命令的結果驗證未滿足以下條件。
- A local branch with the same name does not already exist.
- 不存在使用相同遠端分支名稱的多個遠端。
要執行git checkout遠端分支操作,請使用git checkout
命令,並輸入遠端分支的名稱,如下所示。

git checkout
.如果您的本地存儲庫已包含具有相同名稱的本地分支,請在遠端分支之前添加b
參數以指定替代的本地分支名稱。

如果您的本地存儲庫有多個具有相同分支名稱的遠端,請指定要跟蹤本地提交的遠端和分支。

未來版本的Git可能更喜歡您使用
git switch
命令來更改和創建分支。Gitswitch
命令僅適用於分支,而Git checkout命令具有多種能力。如果您想了解更多信息,Irshad S.寫了一篇有關這一決策背後原因的好入門文章。
將本地分支推送到遠端
在建立一個本地分支,而無相應的遠端分支進行追蹤時,您可以使用 git push
命令將該分支推送到遠端。在您喜歡的遠端上建立新分支的最直接方法是使用 u
參數。
如前所述,u
參數需要存儲庫名稱和源分支的參數。通過僅指定 HEAD
作為源分支名稱,Git 會使用當前本地分支名稱作為遠端分支的名稱,即 NewBranch
。

HEAD
是一個簡便的快捷方式,表示當前分支。您可以將其他分支推送到遠端並建立追蹤,使用它們的名稱而不是HEAD
。
有時,當前本地分支的名稱與遠端分支的名稱不匹配。要使用不同的名稱,請在源之後指定所需的分支名稱,並用冒號連接,如下所示。

接下來的步驟和其他 Git 資源
回顧了Git的基本知識,管理遠端,以及執行git checkout遠端分支後,你現在已經裝備了豐富的知識,將有助於避免未來的挫折。在Git中檢查遠端分支的步驟和分享的最佳實踐將成為未來不可估量的資源。
如果你希望深入了解Git存儲庫管理的其他方面,以下資源強烈推薦:
- A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
- Git switch:一個專門處理分支的命令,與多功能的Git
checkout
不同。
Source:
https://adamtheautomator.com/git-checkout-remote-branch/