在 Git 中將遠端分支合併到本地分支

Kevin Amayi 2023年1月30日
  1. 通過克隆遠端倉庫並在本地更新更改,將遠端分支合併到 Git 中的本地分支
  2. 在 Git 中通過跟蹤和拉取遠端倉庫的變化將遠端分支合併到本地分支
在 Git 中將遠端分支合併到本地分支

本教程將通過克隆遠端倉庫並在本地更新更改來將遠端 git 分支合併到本地分支。

通過克隆遠端倉庫並在本地更新更改,將遠端分支合併到 Git 中的本地分支

我們將克隆一個包含兩個分支的遠端倉庫,即 maingh-pages

然後,我們將建立一個本地分支測試並更新遠端分支 gh-pages。在此之後,我們將拉取 gh-pages 中的遠端更改並將它們合併到測試分支。

<!-- The command to use is -->
git clone <remote-repo-url>
    
<!-- From your terminal run -->
git clone https://github.com/KEVINAMAYI/AkanNameGenerator.git

輸出:

Cloning into 'AkanNameGenerator'...
remote: Enumerating objects: 94, done.
remote: Total 94 (delta 0), reused 0 (delta 0), pack-reused 94
Unpacking objects: 100% (94/94), 2.38 MiB | 1.86 MiB/s, done.

使用下面的命令,我們將進入專案資料夾和可用分支列表。

<!-- get into project folder -->
cd AkanNameGenerator

<!-- List branches available -->
git branch -a

輸出:

<!-- The asterix indicates we are on branch main -->
* main
remotes/origin/HEAD -> origin/main
remotes/origin/gh-pages
remotes/origin/main

接下來,我們將建立一個本地分支測試。

git branch test

然後,我們將切換到本地分支測試。

git checkout test

輸出:

Switched to branch 'test.'

在合併到測試分支之前,我們通過執行此命令繼續更新我們的 gh-pages

git fetch origin gh-pages

輸出:

remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 726 bytes | 363.00 KiB/s, done.
From https://github.com/KEVINAMAYI/AkanNameGenerator
* branch            gh-pages   -> FETCH_HEAD
4a458ff..4edc95b  gh-pages   -> origin/gh-pages

更新後,我們合併遠端分支 gh-pages 進行測試。

git merge origin/gh-pages

輸出(如果分支 gh-pages 有任何變化):

Updating f25a425..4a458ff
Fast-forward
js/global.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

輸出(如果分支 gh-pages 沒有變化):

Already up to date.

在 Git 中通過跟蹤和拉取遠端倉庫的變化將遠端分支合併到本地分支

我們現在將克隆一個包含兩個分支的遠端倉庫,mastergh-pages。然後,我們將建立一個本地分支 another-branch 並將其設定為跟蹤任何並拉取在遠端 main 分支上所做的更改。

<!-- The command to use is -->
git clone <remote-repo-url>
    
<!-- From your terminal run -->
git clone https://github.com/KEVINAMAYI/AkanNameGenerator.git

輸出:

Cloning into 'AkanNameGenerator'...
remote: Enumerating objects: 94, done.
remote: Total 94 (delta 0), reused 0 (delta 0), pack-reused 94
Unpacking objects: 100% (94/94), 2.38 MiB | 1.86 MiB/s, done.

接下來,我們需要進入專案資料夾並通過以下方式列出可用的分支:

<!-- get into project folder -->
cd AkanNameGenerator

<!-- List branches available -->
git branch -a

輸出:

<!-- The asterix indicates we are on branch main -->
* main
remotes/origin/HEAD -> origin/main
remotes/origin/gh-pages
remotes/origin/main

我們將建立一個本地分支 another-branch

git branch another-branch

我們將切換到我們的本地分支 another-branch

git checkout another-branch

輸出:

Switched to branch 'another-branch'

然後,我們將分支設定為 another-branch 以跟蹤遠端 main 單元的更改。

git branch --set-upstream-to=origin/main another-branch

輸出:

Branch 'another-branch' set up to track remote branch 'main' from 'origin'.

我們現在可以直接拉取遠端分支 main 上的修改。

git pull

輸出:

Merge made by the 'recursive' strategy.
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

相關文章 - Git Branch

相關文章 - Git Merge