在 master 分支上进行了 commit 但还没有 push,怎么安全地切到新分支并保留这些更改

  1. 确保你的 commit 确实没有 push(否则会覆盖远程分支):

    复制代码
    git log --oneline             # 查看本地 commit
    git log --oneline origin/master  # 查看远程 master 的 commit

    确保你的 commit 只存在于本地,远程 origin/master 没有这些 commit。

  2. 重置 master 分支到远程最新状态(丢弃本地 commit):

    复制代码
    git fetch origin             # 确保获取远程最新状态
    git reset --hard origin/master  # 强制回退到远程 master

    ⚠️ 注意--hard 会丢弃所有未提交的更改和未 push 的 commit,确保你不需要它们!

  3. 如果你想保留这些 commit,但移到新分支(推荐更安全的方式):

    复制代码
    git checkout -b new-branch   # 基于当前 commit 创建新分支
    git checkout master          # 切回 master
    git reset --hard origin/master  # 重置 master 到远程状态

    这样 commit 会保留在 new-branch,而 master 恢复干净。

总结:

  • 如果想彻底丢弃 commitgit reset --hard origin/master

  • 如果想保留 commit → 先切新分支 (git checkout -b new-branch),再重置 master

这样既不会丢失代码,又能让 master 保持干净。

相关推荐
C++、Java和Python的菜鸟1 小时前
第9章 后端Web进阶(AOP)
java·开发语言·前端
nuisthou1 小时前
git常用命令总结
git
我星期八休息1 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump
西邮彭于晏2 小时前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
AC赳赳老秦2 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
结网的兔子2 小时前
【前端开发】Web端迁移至 uni-app 及鸿蒙扩展方案对比
前端·uni-app·harmonyos
黄泉路醉s2 小时前
在Vant+Vue+TypeScript的H移动前端使用UnoCSS
前端·vue.js·typescript
水瓶夜之3 小时前
.NET 中的新增功能系列文章——.NET SDK中的新增功能
前端·chrome·.net
潘正翔3 小时前
k8s进阶_Harbor镜像仓库
git·云原生·容器·kubernetes·gitee·github
笨笨狗吞噬者3 小时前
VS Code 内置浏览器打开网页
前端