误在master分支提交,如何迁移至Development分支并重置master?(VS内置Git GUI)
解决方案(VS内置Git GUI操作)
1. 同步远程分支
- 打开VS的Git面板(快捷键:Ctrl+Shift+G)
- 点击「拉取」按钮,确保本地
master和Development分支与远程保持同步
2. 迁移master分支的提交到Development
方式一:Cherry-Pick(适合少量独立提交)
- 在Git面板的分支列表中,切换到
Development分支 - 切换到「提交」标签页,点击顶部分支选择框,选择
master分支,找到你需要迁移的所有提交 - 按住Ctrl选中目标提交,右键点击选择「Cherry Pick」
- 若出现冲突,解决冲突后完成提交即可
方式二:Rebase(适合连续的多提交)
- 切换到
master分支 - 在分支列表中右键点击
Development分支,选择「Rebase current branch onto selected branch」 - 完成rebase后,切换到
Development分支,右键点击选择「Reset current branch to...」,选择master分支的当前状态并确认 - 切回
master分支,右键点击选择「Reset current branch to...」,选择远程的origin/master,选择「Hard」模式(会丢弃本地未推送的所有更改)
3. 推送Development分支
- 切换到
Development分支,点击Git面板的「推送」按钮,将迁移后的提交推送到远程
4. 重置master分支到远程状态
- 切换到
master分支,右键点击远程的origin/master,选择「Reset local branch to...」,选择「Hard」选项(此操作会彻底删除本地master上未推送的提交,确认后执行)
命令行备选方案
如果GUI操作遇到问题,可使用以下命令:
- 同步远程分支:
git fetch origin
- 切换到Development并拉取最新代码:
git checkout Development git pull origin Development
- 迁移提交(Cherry-Pick示例,替换
<起始提交哈希>为master分支上你开始错误提交前的那个提交哈希):
git cherry-pick <起始提交哈希>..master
或者用Rebase方式:
git checkout master git rebase Development git checkout Development git merge master git checkout master git reset --hard origin/master
- 推送Development分支:
git push origin Development
内容的提问来源于stack exchange,提问作者TorusWithSprinkles
相关产品推荐
相关产品推荐

