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

相关推荐
Bdygsl2 小时前
前端开发:CSS(2)—— 选择器
前端·css
斯~内克2 小时前
CSS包含块与百分比取值机制完全指南
前端·css·tensorflow
百万蹄蹄向前冲8 小时前
秋天的第一口代码,Trae SOLO开发体验
前端·程序员·trae
努力奋斗18 小时前
VUE-第二季-02
前端·javascript·vue.js
路由侠内网穿透8 小时前
本地部署 SQLite 数据库管理工具 SQLite Browser ( Web ) 并实现外部访问
运维·服务器·开发语言·前端·数据库·sqlite
一只韩非子8 小时前
程序员太难了!Claude 用不了?两招解决!
前端·claude·cursor
JefferyXZF8 小时前
Next.js项目结构解析:理解 App Router 架构(二)
前端·全栈·next.js
Sane8 小时前
react函数组件怎么模拟类组件生命周期?一个 useEffect 搞定
前端·javascript·react.js
《小书生》9 小时前
git stash 暂存文档
git
gnip9 小时前
可重试接口请求
前端·javascript