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

如何在Sourcetree合并时预览并丢弃非冲突文件?是否有对应UI操作?

解决方案

一、合并前预览并筛选文件的方法

方法1:先查看分支差异,手动排除文件后合并

  • 在Sourcetree中选中待合并的源分支,右键选择**「Diff Against Current Branch」**,即可查看两个分支间所有文件的差异,标记出无需合并的文件。
  • 切换回目标分支,对标记出的文件执行重置操作:选中文件右键选择**「Reset to HEAD」**,将文件恢复为当前分支的最新版本,覆盖合并会带来的更改;也可执行命令git checkout HEAD -- 路径/文件名实现相同效果。
  • 完成上述操作后再执行合并,这些文件就不会被合并过来。

方法2:启动合并但不提交,在暂存区处理文件

这是你提到的命令行思路的可视化实现:

  • 右键点击待合并的源分支,选择**「Merge into Current Branch」**。
  • 在弹出的合并对话框中,勾选**「No Fast-forward」,点击「Advanced Options」后勾选「Do not commit merge」**。
  • 执行合并后,Sourcetree会完成合并但不自动提交。此时在「Unstaged Files」或「Staged Files」列表中,选中不需要的文件:
    • 右键选择**「Reset to HEAD」**,丢弃合并带来的更改;
    • 若为新增文件,直接删除后右键选择**「Stage Removed」**。
  • 处理完所有目标文件后,点击**「Commit」**完成合并提交。

二、Sourcetree对应git merge --no-ff --no-commit的UI选项

有的,就是上述方法2中的操作:合并时勾选「No Fast-forward」+ 高级选项里的「Do not commit merge」,两者组合完全等价于git merge --no-ff --no-commit $SOURCE_BRANCH。

额外优化:自动排除固定文件

如果有长期无需合并的固定文件(如开发环境配置),可在项目根目录添加.gitattributes文件,设置merge=ours属性,Git会自动保留当前分支的版本,无需每次手动处理:

# 示例:让dev.env文件合并时始终保留当前分支版本
dev.env merge=ours

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:52:54