git 创建远程分支

在本地有修改的情况下,新建一个远程分支,并把这些修改同步到这个全新的远程分支上------核心思路是「先基于当前修改创建本地新分支 → 提交修改 → 推送本地新分支到远程(自动创建对应的远程新分支)」,以下是完整、可直接执行的步骤,覆盖所有关键细节(比如修改未提交/已提交、验证同步结果):

前提说明

假设:当前在 dev 分支有未提交/已提交的修改,想新建远程分支 origin/feature-my-new(可替换为想要的分支名),并把修改同步过去。


完整操作步骤

步骤

1:确认本地修改状态(避免遗漏) 先查看当前修改的文件,确保知道要同步的内容:

bash 复制代码
# 查看本地修改(未暂存/已暂存的内容) 
git status

常见输出示例:

yaml 复制代码
# 情况1:有未暂存的修改 
modified: src/App.js 
modified: src/utils/request.js

# 情况2:有已暂存但未commit的修改 
Changes to be committed: 
modified: src/App.js 

# 情况3:已commit到当前分支(仅需确认提交记录) 
git log --oneline # 查看最后一次提交 

步骤 2:

创建本地新分支(携带当前修改) 基于当前分支(含所有未提交/已提交修改)创建并切换到本地新分支(名称建议和要创建的远程分支一致,方便管理):

bash 复制代码
# 创建并切换到本地新分支(feature-my-new 替换为新的分支名) 
git checkout -b feature-my-new

核心说明:

  • -b 表示「创建分支并切换」; - 执行后,当前的所有修改(未提交/已提交)都会被带到这个新分支上,原分支(如 dev)的修改不会受影响。

步骤 3:

提交本地修改到新分支(关键) 如果修改还未提交(步骤1看到有未暂存/已暂存内容),先完成提交(否则无法推送到远程):

sql 复制代码
bash # 1. 暂存所有修改(也可指定文件:git add src/App.js) git add . # 2. 提交修改到本地新分支(备注写清楚修改内容) git commit -m "新增xxx功能:同步到feature-my-new分支" 

补充:

如果修改已提交到原分支 若修改已经 commit 到原分支(如 dev),执行 git checkout -b feature-my-new 后,这些 commit 会自动带到新分支,无需重复提交。

步骤 4:

推送本地新分支到远程(自动创建远程新分支) 这一步会在远程仓库创建对应的新分支,并把本地新分支的修改同步过去:

bash 复制代码
# 推送本地新分支到远程,自动创建远程新分支 
# -u 表示「关联本地分支和远程分支」,后续可直接 
git push/git pull git push -u origin feature-my-new 

核心说明:

  • origin 是远程仓库的默认别名(如果远程仓库别名是 gitee/gitlab,替换即可);
  • feature-my-new 是要创建的远程分支名(和本地分支名一致);
  • 执行后,远程仓库会新增 origin/feature-my-new 分支,且本地修改已同步到该分支。

步骤 5:

验证是否同步成功(确保无误) 推送后,验证远程分支是否创建成功,且修改已同步:

bash 复制代码
# 1. 刷新远程分支缓存(查看最新的远程分支列表) 
git fetch -p 

# 2. 查看所有远程分支(确认 feature-my-new 已存在) 
git branch -r 
# 3. 查看远程新分支的提交记录(确认修改已同步) 
git log origin/feature-my-new --oneline 

预期输出:

bash 复制代码
# git branch -r 会看到: 
remotes/origin/main 
remotes/origin/dev 
remotes/origin/feature-my-new 
# 新创建的远程分支 
# git log 会看到刚才提交的记录: 
abc123 新增xxx功能:同步到feature-my-new分支 

补充场景:特殊情况处理

场景 1:

只想同步「部分修改」到新分支 如果不想把当前所有修改都同步,只想选部分文件/部分代码:

bash 复制代码
# 1. 先切换到新分支(git checkout -b feature-my-new)
# 2. 仅暂存指定文件(而非 git add .) 
git add src/utils/request.js 
# 3. 提交并推送(后续步骤同上) 
git commit -m "仅同步请求工具类修改" 
git push -u origin feature-my-new 

场景 2:

回到原分支继续开发 同步完成后,若想回到原分支(如 dev)继续开发:

bash 复制代码
# 切换回原分支(修改仍保留在 feature-my-new 分支) 
git checkout dev 

场景 3:推送时提示权限不足

如果远程仓库开启了分支保护,或无直接创建分支的权限,需:

  1. 联系仓库管理员开通权限;
    1. 或通过「提 PR/MR」的方式将本地新分支合并到远程(适合团队协作场景)。

总结

  1. 核心流程:确认修改 → 创建本地新分支 → 提交修改 → 推送创建远程新分支 → 验证;

  2. 关键命令

    • 创建分支:git checkout -b 新分支名
    • 推送创建远程分支:git push -u origin 新分支名
  3. 核心优势: 全程保留原分支修改,新分支独立承载修改,且远程分支自动创建,无需手动在远程仓库操作。 这套流程是团队协作中「基于现有修改创建新分支并同步」的标准做法,既保证修改不丢失,又符合 Git 分支管理规范。

附(令牌访问)

太久没维护这个项目了,仓库改成令牌访问了,记一下命令:

perl 复制代码
#git remote ser-url origin http://username:用户名>:<令牌>@<仓库域名>/<用户名>/<仓库名>.git
git remote set-url origin https://zhangsan:ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/zhangsan/my-project.git
相关推荐
aou2 小时前
让表格式录入像 Excel 一样顺滑
前端·ai编程
前端付豪2 小时前
必知 Express和 MVC
前端·node.js·全栈
重铸码农荣光2 小时前
CSS 也能“私有化”?揭秘模块化 CSS 的防坑指南(附 Vue & React 实战)
前端·css·vue.js
南囝coding2 小时前
CSS终于能做瀑布流了!三行代码搞定,告别JavaScript布局
前端·后端·面试
全栈王校长2 小时前
Vue.js 3 项目构建神器:Webpack 全攻略
前端
1024小神2 小时前
cloudflare+hono使用worker实现api接口和r2文件存储和下载
前端
Anita_Sun2 小时前
Lodash 源码解读与原理分析 - Lodash 对象创建的完整流程
前端
米诺zuo2 小时前
TypeScript 知识总结
前端
米饭同学i2 小时前
微信小程序实现动态环形进度条组件
前端·微信小程序