使用git merge --squash压缩提交无效,求非变基的解决方法
解决Git合并压缩提交无效果的问题
你执行git merge --squash后没有效果的核心原因是:这个命令不会自动创建提交,它仅将featureBranch分支的所有修改内容合并到当前分支的工作区和暂存区,不会生成新的提交记录,直接push自然不会有任何远程仓库的变化。
按照以下步骤操作就能完成需求:
- 切换到main分支:
git checkout main - 确保本地main分支与远程同步(你提到已执行pull/fetch,可再次确认):
git pull origin main - 执行压缩合并:
git merge --squash featureBranch - 手动提交合并后的修改(自定义提交信息,说明是压缩合并的内容):
git commit -m "合并featureBranch的修改(压缩为单个提交)" - 推送到Bitbucket远程仓库:
git push origin main
注意事项
- 如果执行
merge --squash时出现冲突,先手动解决文件冲突,再执行git add .将冲突文件加入暂存区,之后再执行git commit。 - 这种方式不会生成任何合并相关的记录,最终只会在main分支上新增一个包含featureBranch所有修改的单个提交,完全符合你“移除合并相关内容”的需求。
内容的提问来源于stack exchange,提问作者Kratos
相关产品推荐
相关产品推荐

