Contents

有關 GIT 遠端分支常用處理

不常使用的 Git 遠端分支指令容易忘記,整理常用操作供參考。

查看遠端分支

1
2
3
4
5
# 只顯示遠端分支
git branch -r

# 顯示所有分支(本地 + 遠端)
git branch -a

建立本機分支並追蹤遠端分支

1
2
3
4
5
6
7
8
# 建立本機分支並設定追蹤遠端分支
git checkout -b feature3-local origin/feature3

# Git 2.23+ 的新寫法
git switch -c feature3-local origin/feature3

# 若本機分支名稱與遠端相同,可簡化為
git checkout -t origin/feature3

推送新分支到遠端

1
2
3
4
5
6
# 推送並設定上游追蹤
git push -u origin feature-new

# 之後就可以直接使用
git push
git pull

-u 等同於 --set-upstream,設定後本地分支就知道要追蹤哪個遠端分支。


刪除遠端分支

1
2
3
4
5
# 刪除遠端分支
git push origin --delete feature-old

# 舊語法(效果相同)
git push origin :feature-old

同步遠端分支清單(清除已刪除的遠端分支)

當遠端分支被刪除後,本地的 git branch -r 可能還會顯示已不存在的分支。使用 --prune 來同步:

1
2
3
4
5
# 抓取並清除已不存在的遠端追蹤分支
git fetch --prune

# 或設定為預設行為(加入 git config)
git config --global fetch.prune true

重命名分支

1
2
3
4
5
6
7
8
9
# 重命名本地分支
git branch -m old-name new-name

# 若已在要重命名的分支上
git branch -m new-name

# 重命名後同步到遠端
git push origin --delete old-name
git push -u origin new-name

設定追蹤(Tracking)關係

1
2
3
4
5
# 為現有的本地分支設定追蹤的遠端分支
git branch --set-upstream-to=origin/feature main

# 查看所有分支的追蹤關係
git branch -vv

git branch -vv 輸出範例:

1
2
* main           a1b2c3d [origin/main] update readme
  feature/login  d4e5f6g [origin/feature/login: ahead 2] add login page
  • ahead 2 表示本地比遠端多 2 個 commit(需要 push)
  • behind 1 表示遠端比本地多 1 個 commit(需要 pull)

常用指令速查

操作 指令
查看遠端分支 git branch -r
建立本機追蹤分支 git checkout -t origin/<branch>
推送新分支 git push -u origin <branch>
刪除遠端分支 git push origin --delete <branch>
同步清除遠端分支 git fetch --prune
查看追蹤關係 git branch -vv