1. 創建新分支但不切換(僅創建)
git branch <分支名>
- 示例:創建一個名為
new-feature
的分支git branch new-feature
2. 創建分支并立即切換到該分支
git checkout -b <分支名> # 傳統方式
# 或
git switch -c <分支名> # Git 2.23+ 推薦方式
- 示例:創建并切換到
new-feature
分支git checkout -b new-feature # 或 git switch -c new-feature
遇到的問題:
系統提示該分支已經存在
- 直接切換到已存在的分支
git switch 新分支的名字
- 刪除舊分支后重新創建
# 先刪除本地舊分支(確保分支內容已合并或無用)
git branch -d 新分支的名字 # 普通刪除
git branch -D 新分支的名字 # 強制刪除(未合并的內容會丟失!)# 重新創建并切換
git switch -c 新分支的名字
- 重命名新分支
如果希望保留舊分支,可以換一個名稱創建:
git switch -c new_feature_name
- 檢查分支是否存在
查看所有本地分支,確認沖突分支:
git branch --list 新分支的名字
3. 基于某個提交(Commit)或標簽(Tag)創建分支
git branch <分支名> <commit-hash或tag名>
- 示例:基于提交
52abc1d
創建分支hotfix
git branch hotfix 52abc1d
4. 從遠程分支創建本地分支并跟蹤
git checkout --track origin/<遠程分支名> # 本地分支名默認與遠程一致
# 或指定本地分支名
git checkout -b <本地分支名> origin/<遠程分支名>
- 示例:從遠程分支
dev
創建本地分支并跟蹤git checkout --track origin/dev # 或自定義本地分支名 git checkout -b my-dev origin/dev
5. 將新分支推送到遠程倉庫
創建本地分支后,若需同步到遠程倉庫:
git push -u origin <分支名> # -u 設置上游(跟蹤)分支
- 示例:推送
new-feature
分支到遠程git push -u origin new-feature
直接運行git push出現的問題
fatal: The current branch 創建的新分支 has no upstream branch.
To push the current branch and set the remote as upstream, usegit push --set-upstream origin 創建的新分支To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
這個錯誤提示是因為當前本地分支 創建的新分支
尚未與遠程倉庫的對應分支關聯(即沒有設置上游分支)。以下是解決方案:
1. 直接推送并設置上游分支
運行 Git 提示的命令,將本地分支推送到遠程倉庫并關聯(推薦):
git push --set-upstream origin 創建的新分支
或簡寫:
git push -u origin 創建的新分支
-u
或--set-upstream
:將本地分支與遠程分支綁定,后續直接git push
即可。
2. 后續推送簡化
設置上游后,未來推送只需:
git push
3. 避免重復設置的配置(可選)
如果你希望未來新建分支時自動關聯遠程同名分支,可啟用自動跟蹤配置:
git config --global push.autoSetupRemote true
啟用后,未來對新分支直接運行 git push
即可自動關聯遠程分支。
為什么會出現這個問題?
- 原因:本地分支是新建的,尚未與遠程倉庫的分支關聯。
- 解決邏輯:通過
git push -u
顯式綁定本地分支與遠程分支的關系。
驗證是否成功
- 查看分支跟蹤關系:
輸出中會顯示本地分支關聯的遠程分支(例如git branch -vv
origin/創建的新分支
)。
其他場景補充
-
如果遠程已有同名分支:
若遠程分支已存在但未關聯,可強制綁定(需先拉取遠程內容):git branch --set-upstream-to=origin/創建的新分支
-
推送沖突時:
如果遠程分支有更新,先拉取并合并:git pull origin 創建的新分支
操作示例
# 首次推送并綁定遠程分支
git push -u origin 創建的新分支# 后續推送(無需指定分支)
git push
按此操作即可解決問題!
常用輔助命令
- 查看所有分支(本地+遠程)
git branch -a
- 刪除分支
git branch -d <分支名> # 刪除本地分支 git push origin --delete <分支名> # 刪除遠程分支
使用場景示例
-
開發新功能
git switch -c feature-login # 創建并切換到 feature-login 分支 # 開發完成后合并到主分支 git switch main git merge feature-login
-
修復緊急問題
git checkout -b hotfix-issue123 main # 基于 main 分支創建修復分支 # 修復后推送到遠程 git push -u origin hotfix-issue123
注意事項
- 分支名盡量清晰(如
feature/login
、bugfix/header
)。 - 操作前確保工作區是干凈的(無未提交的修改),或用
git stash
暫存變更。