SourceTree是否支持无需提交的合并操作?实操问题求助
在SourceTree中实现
git merge --no-ff --no-commit的操作方法 问题描述
我需要执行Git命令:
git merge --no-ff --no-commit {branchtobemerged}
但在SourceTree界面里找不到对应的UI操作,只能通过终端执行。我试过取消合并设置中的"Commit merge immediately (if no conflicts)"选项,但系统依然会自动提交,这让我没法审查合并差异、拒绝部分不想合并的文件,请问有解决办法吗?
解决步骤
SourceTree没有直接对应--no-ff --no-commit的UI选项,但可以通过以下方式实现需求:
- 打开SourceTree,切换到要合并的目标分支,右键点击待合并的分支,选择「合并{分支名}到当前分支」
- 在弹出的合并窗口中,勾选「禁用快进合并」(这对应命令里的
--no-ff参数) - 不要点击「确定」,而是点击窗口左下角的「命令行」按钮,此时终端会自动生成基础的合并命令
- 在终端里把命令修改为
git merge --no-ff --no-commit {branchtobemerged},执行这条命令 - 回到SourceTree,会看到合并已进入待提交状态,此时可以在「文件状态」面板查看所有合并差异
- 对不想保留的文件,右键选择「重置为HEAD」,即可取消该文件的合并变更
- 确认所有变更符合要求后,再手动提交合并结果
补充说明:取消"Commit merge immediately (if no conflicts)"选项仅在合并有冲突时才会暂停提交,无冲突时仍会自动完成提交,因此没法单独靠这个选项实现--no-commit的效果。
内容的提问来源于stack exchange,提问作者Chizuoka
相关产品推荐
相关产品推荐

