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

相关推荐
CoderJia程序员甲1 小时前
GitHub 热榜项目 - 日榜(2026-01-24)
git·ai·开源·llm·github
莫问前路漫漫1 小时前
Electerm 连接远程服务器完整指南
运维·服务器·git
你脸上有BUG1 小时前
【工程化】记给ant-design-vue打补丁的示例
前端·javascript·vue.js·补丁·ant-design-vue
鸣弦artha2 小时前
TabBar标签页组件详解
linux·git·ubuntu
灰灰勇闯IT2 小时前
Flutter for OpenHarmony:布局组件实战指南
前端·javascript·flutter
⑩-3 小时前
Vue框架学习
前端·vue.js·学习
a程序小傲3 小时前
京东Java面试被问:基于Gossip协议的最终一致性实现和收敛时间
java·开发语言·前端·数据库·python·面试·状态模式
小二·3 小时前
Python Web 开发进阶实战:AI 原生应用商店 —— 在 Flask + Vue 中构建模型即服务(MaaS)与智能体分发平台
前端·人工智能·python
Devlive 开源社区3 小时前
技术日报|推理RAG文档索引PageIndex登顶日增1374星,React视频工具Remotion二连冠进前二
前端·react.js·前端框架
xkxnq3 小时前
第三阶段:Vue 路由与状态管理(第 45 天)(路由与状态管理实战:开发一个带登录权限的单页应用)
前端·javascript·vue.js