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

相关推荐
小救星小杜、39 分钟前
给vue-admin-template菜单栏 sidebar-item 添加消息提示
前端·vue.js
小小小小宇3 小时前
模块联邦
前端
佳腾_4 小时前
【web服务_负载均衡Nginx】二、Nginx 核心技术之负载均衡与反向代理
前端·nginx·云计算·负载均衡·web中间件
三书yjy4 小时前
所见即所得的前端 AI 工具 Readdy.ai
前端·人工智能·readdy.ai
欧买噶噶4 小时前
vue浅试(1)
前端·javascript·vue.js
华洛4 小时前
从0到1打造企业级AI售前机器人——实战指南一:根据产品需求和定位进行agent流程设计🧐
前端·javascript·node.js
拉不动的猪4 小时前
微前端之-Micro-App
前端·javascript·面试
小小小小宇4 小时前
微前端Qiankun核心原理
前端
Senar4 小时前
web端兼容移动端方案
前端·javascript
明远湖之鱼4 小时前
手把手带你实现一个自己的简易版 Webpack
前端·webpack·源码