You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地master分支的修改同步到本地work分支?

解决误在master分支修改,同步到work分支的方案

别担心,这种误操作在日常开发里太常见了,我给你分两种场景来解决,你根据自己的实际情况选就行:

场景1:修改还没提交到master(工作区/暂存区有改动)

这种情况最简单,用stash临时保存改动再转移:

  • 先在master分支把当前改动暂存起来:
    git stash
    
    这一步会把你所有未提交的改动存到Git的临时存储区,master分支会回到干净的状态。
  • 切换到work分支:
    git checkout work
    
  • 把暂存的改动恢复到work分支:
    git stash pop
    
    如果出现代码冲突,直接在本地解决冲突后,正常提交到work分支就可以了。

场景2:修改已经提交到本地master分支(有新的commit)

如果已经把误修改的内容提交成了commit,我们可以用cherry-pick把这些commit转移到work分支,再回滚master的改动:

  1. 先切换到work分支:
    git checkout work
    
  2. 把master上的误提交commit复制到work分支:
    • 先回到master分支(或者直接在work分支用git log master)查看需要转移的commit哈希值:
      git log --oneline master
      
      输出里的一串7位字符就是commit hash,比如a1b2c3d 修复了XX问题
    • 如果是单个commit,执行:
      git cherry-pick a1b2c3d
      
    • 如果是连续的多个commit(比如最近3个),可以用范围:
      git cherry-pick master~3..master
      
    同样,如果有冲突,解决冲突后执行git cherry-pick --continue完成操作。
  3. 回滚master分支的误提交:
    切换回master分支,用reset撤销掉那些误提交的commit:
    git checkout master
    git reset --hard HEAD~N
    
    这里的N是你要撤销的commit数量,比如误提交了2个就写HEAD~2。注意:reset --hard会彻底删除这些commit的改动,一定要确保已经把它们转移到work分支再执行!

额外提示

  • 如果想查看stash里的内容,可以用git stash list,如果想恢复指定的stash,用git stash apply stash@{0}(0是stash的序号)
  • 如果你的master分支已经推送到了远程仓库,那回滚的时候要格外小心,避免影响其他协作的人——不过你说的是本地分支,所以不用顾虑这个问题。

内容的提问来源于stack exchange,提问作者Max Wolfen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:41:06