如何在Git中创建无历史提交的新分支 仅推送自身的修改提交
Git仅推送当前分支单次提交的解决方案
问题原因
你使用git checkout -b 分支名创建分支时,默认基于当前所在的本地分支生成新分支。如果你的本地master分支存在尚未同步到远程master的历史提交,新创建的分支会继承这些提交,推送时就会连带不属于你的改动一起提交。
操作方案
场景1:尚未在新分支提交你的改动
- 先切换回本地
master分支,同步远程最新代码,清理本地master上无关的未推送提交:
git checkout master git fetch origin git reset --hard origin/master
- 基于最新的远程
master创建符合命名规范的新分支:
git checkout -b enhancements/你的页面名
- 正常修改内容后提交改动,再推送当前分支到远程:
git add . git commit -m "你的提交说明" git push origin enhancements/你的页面名
此时推送的分支仅会包含你刚完成的这一次提交。
场景2:已经在错误创建的分支上提交了你的改动
如果已经在错误的分支上完成了改动提交,不需要重写代码,使用cherry-pick单独提取你的提交即可:
- 执行
git log找到你本次改动对应的提交哈希值(一般取前7位即可,示例为a1b2c3d),复制记录下来 - 同步远程最新的
master代码,直接基于远程master创建干净的新分支:
git fetch origin git checkout -b enhancements/你的页面名 origin/master
- 把你记录的那一次提交单独拣入当前新分支,若出现代码冲突,解决冲突后执行
git cherry-pick --continue即可:
git cherry-pick a1b2c3d
- 确认代码无误后推送当前新分支:
git push origin enhancements/你的页面名
如果不需要之前的错误分支,可执行git branch -D 错误分支名删除。
内容的提问来源于stack exchange,提问作者Hydrolox
相关产品推荐
相关产品推荐

