【Git】-- 处理 Git 提交到错误分支的问题

如果你不小心把本应提交到 test 分支的代码提交到了 master 分支(但尚未 push),可以按照以下步骤解决:

方法一(推荐):使用 git resetgit stash

  1. 首先,确保你在 master 分支:git checkout master

  2. 撤销最后一次提交但保留更改:git reset HEAD~1

    或者如果你想保留提交信息:git reset --soft HEAD~1

  3. 暂存你的更改:git stash

  4. 切换到 test 分支:git checkout test

  5. 应用暂存的更改:git stash pop

  6. 重新提交更改:

    复制代码
    $ git add .
    $ git commit -m "你的提交信息"

方法二:使用 git cherry-pick

如果你已经做了多个提交,或者想保留原来的提交信息:

  1. 首先切换到 test 分支:git checkout test

  2. master 分支挑选提交:git cherry-pick <commit-hash>

    其中 <commit-hash> 是你在 master 上的错误提交的哈希值。

  3. 回到 master 分支并删除错误的提交:

    复制代码
    $ git checkout master
    $ git reset --hard HEAD~1

方法三:创建新分支并重置

如果你愿意,也可以:

  1. 从当前 master 创建新分支:git branch test

  2. 重置 master 到之前的状态:

    复制代码
    git checkout master
    git reset --hard origin/master
  3. 切换到 test 分支继续工作:git checkout test

推荐:方法一通常是最简单直接的解决方案。

相关推荐
A-Jie-Y40 分钟前
Git基础-核心概念与常用命令
git
夜珀1 小时前
Git基础修炼手册:在AtomGit上玩转版本控制
git
golang学习记1 小时前
Zed IDE官宣新招:Git Graph 正式支持!
ide·git
要记得喝水2 小时前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash
AI_Claude_code2 小时前
专栏导论:开源项目贡献的价值与Git工作流全景图
git·开源
never forget shyang2 小时前
CCS20.2.0使用教程
c语言·git·单片机
lifewange11 小时前
常用的Git命令有哪些?
git
无限进步_12 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
C++ 老炮儿的技术栈12 小时前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
英俊潇洒美少年12 小时前
Git 常用命令速查表(前端开发专属版)
git