不常使用的 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 |