必须先切换到目标分支再执行合并,webstorm不会自动切分支;确认状态栏显示目标分支(如dev)后,再merge into current;合并前用show diff预查冲突;解决冲突时只编辑中间区并标记为resolved;合并后需手动push,否则仅限本地。

必须先切换到目标分支,再执行合并——WebStorm 不会替你自动切分支,这点错一步,整个合并方向就反了。
确认当前分支是不是你要合入的目标分支
很多人点 Merge into Current 后发现代码“合错了”,本质是还在源分支上操作。比如你想把 feature/login 合进 dev,就必须先确保当前 Git 状态栏(左下角)显示的是 dev,而不是 feature/login。
- 快捷方式:按
Ctrl + Shift + A(Windows/Linux)或Cmd + Shift + A(macOS),输入Checkout Branch,选中目标分支回车 - 图形化路径:打开
Git → Branches面板(Alt + 9),右键目标分支 →Checkout Revision - 切完后看状态栏颜色和文字,绿色高亮 + 分支名才表示成功激活
执行 Merge into Current 前先看一眼差异
直接点合并容易忽略冲突预兆,尤其当两个分支都改过同一文件的相邻逻辑时。WebStorm 的 Show Diff with Working Tree 能提前暴露风险点。
- 在
Branches面板里右键源分支(如feature/login)→Show Diff with Working Tree - 它会列出所有被修改的文件,点击任一文件,右侧对比窗口里高亮的就是实际变更行
- 如果看到大量重叠修改(比如同一函数里两边都加了
if或删了console.log),合并时大概率要手动介入,别指望自动解决 - 这个步骤不能跳过——它比合并失败后再开冲突编辑器省至少三分钟
处理合并冲突时只信中间编辑区
冲突文件打开后,默认三栏布局:左是当前分支(Current),右是源分支(Incoming),中间是你要提交的最终内容。很多人只点“Use left”或“Use right”,结果丢了逻辑。
- 中间区域完全可编辑,你可以删、粘、手写,WebStorm 不校验“是否来自左右两边”
- 遇到单行冲突(比如左边删了某行,右边改了同一行),直接选一边大概率出错;得手动把关键逻辑补进去
-
Apply all non-conflicting changes按钮能自动合并无冲突部分,但别依赖它覆盖所有内容 - 改完记得右键中间区 →
Mark as resolved,否则git status仍显示 unmerged
合并完不 push = 白干
WebStorm 的 Merge 只写本地仓库,远程分支不会变。你日志里看到 Merge branch 'feature/login' 提交,只是本地多了一条 commit。
- 打开
Git → Log标签页,确认最顶上那条是 merge 提交(带分支名和Merge字样) - 右键该提交 →
Publish,或者主菜单VCS → Git → Push - 如果 push 报
non-fast-forward update rejected,说明别人已推新提交——立刻Pull,别硬 push - 特别注意:如果你合并的是远程跟踪分支(如
origin/dev),也得先Fetch再合并,否则可能拉不到最新 HEAD
最容易被忽略的是「合并前没 pull 目标分支」——你以为自己在最新 dev 上合并,其实本地 dev 已落后远程三天,合并完还得处理一堆本可避免的冲突。











