如何创建远程 Git 分支
远程分支靠推送本地分支创建:git checkout -b <分支名> 建本地分支,git push -u origin <分支名> 推送并建立跟踪。也可在 GitHub 网页直接点 Branch 按钮创建。
常见命令行做法是把本地分支推上去;也可以通过托管平台界面或 API 创建远程分支:git checkout -b 分支名 创建本地分支,git push -u origin 分支名 推送到远程——远程分支就诞生了,-u 顺带建立跟踪关系,之后裸 git pull/git push 即可。
标准流程
git checkout -b feature/pay # 建并切到本地分支
# ... 写代码、提交 ...
git push -u origin feature/pay # 推送 = 创建远程分支
其他方式
# 把已有的本地分支推上去
git push -u origin 已有分支名
# 基于远程的其他分支直接建远程分支(不建本地)
git push origin origin/develop:refs/heads/feature/pay
也可以在 GitHub/GitLab 网页上点 "New branch" 创建——之后本地 git fetch && git checkout feature/pay 检出。
初始空仓库需先创建提交,尚未出生的分支没有可推送引用。
验证
git ls-remote --heads origin refs/heads/feature/pay # 查询远端引用
git branch -r # 本地远程跟踪引用,不等于实时远端状态
git branch -vv # 本地分支应显示 [origin/feature/pay]
常见问题(FAQ)
Q:push 时忘了 -u,怎么补跟踪关系?
git branch --set-upstream-to=origin/feature/pay,或者重新 git push -u origin feature/pay(会尝试推送当前提交,若本地有新提交则改变远端,并非只补跟踪配置)。
Q:远程分支名想和本地不一样?
git push origin 本地名:远程名。不推荐长期这么玩,排查问题时两边名字不一样很绕。
Q:远程分支建错了怎么删?
git push origin --delete 分支名;本地分支另行 git branch -d 分支名。