在 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 保持干净。

相关推荐
熬夜敲代码的小N4 小时前
鸿蒙PC开发者必备!GitNext深度测评:一站式Git管理工具
git·华为·harmonyos
坚果派·白晓明4 小时前
【开发者必备工具】Windows 11 安装 Git 完整指南
windows·git·项目开发必备工具·参与开源项目必备工具
cooldream20094 小时前
Git实战指南:从Gitee拉取到推送的完整工作流详解
git·gitee
希望未来不会秃4 小时前
【Git实战】如何将本地已有项目关联并推送到指定的远程仓库(保姆级教程)
git·gitee·github
挂科边缘4 小时前
2026 Git 安装流程和基础使用步骤(保姆级教程)
git
是上好佳佳佳呀4 小时前
【前端(十三)】JavaScript 数组与字符串笔记
前端·javascript·笔记
巴沟旮旯儿5 小时前
vite项目配置文件和打包
前端·设计模式
彩票管理中心秘书长5 小时前
Pinia 插件架构与组合式函数:如何让你的 Store 长出“超能力”
前端
彩票管理中心秘书长5 小时前
Pinia 比 Vuex 强在哪?我用同一个模块写了两种实现,你自己看
前端
yingyima5 小时前
用 Cron 加 Webhook 打通自动化工作的任督二脉
前端