[英]How to squash my changes into a single result commit and pick into master branch?
[英]How to squash merge multiple commits from branch to master in a single commit using SmartGIT?
我有一个名为work_in_progress的分支,用于调试和测试具有许多小提交的代码。 它们都有冗余的提交消息。 完成后,我想将壁球合并到主分支。 通常这是使用--squash参数合并时的一个命令。
但是我如何使用SmartGIT做到这一点?
这里的文档如何执行壁球合并似乎是错误的,因为没有选项“由选定的提交及其祖先组成的分支” 。
此处的文档如何执行正常合并和挤压合并根本不起作用。 我已经尝试过了,我仍然在日志中看到所有小的提交。 之后我可以删除work_in_progress分支,一切都很好,但是我想要在master分支的历史记录中使用单个提交消息进行一次提交。
编辑:这是我的提交对话框的屏幕截图。 我想我错过了“简单提交”选项?! 可能我没看懂说明^^
编辑2 :这是日志的屏幕截图。 顶部的第二次提交是使用 SmartGIT 完成的。 您可以看到所有中间提交(包括消息)都在历史记录中可见。 该分支名为 XYZ_work_in_progress。 最后一次(最重要的)提交是使用“git merge --squash ABC_work_in_progress”完成的,但所有提交都被吞没了,所以这是一个干净的历史。 来自分支的所有工作都累积到一个带有单个消息的提交中 :-)
这是典型的情况:在你的特性分支上开发的东西,同时世界一直在转动,更多的东西发生在公共主分支上。
4)右键单击主提示(第1行),选择Rebase HEAD to...
(当然不是Rebase to HEAD... ➝麻烦,这在几个步骤中不会变得如此明显...)。 按对话框中的按钮进行确认。
5)您将功能提交放在首位。 如空心橙色圆圈,因为事情尚未提交。
6) 右键单击功能分支,说Push to...
。 选择(o)Tracked or matching branch
和 —重要 — [x]Force Pushing
(因为您正在“更改功能分支的历史记录”...)
历史现在看起来很干净,你的提交是一致的,也就是快进:
Merge...
。 在选项对话框中,您必须选择Merge to Working Tree
(否则提交时您将无法选择任何选项,即挤压)。您可能需要也可能不需要通过解决然后继续。
最后,说提交。 Pick (o) Simple commit (one parent, "squash")
......她在那里:
较新版本的 SmartGit 提供了一个简单的解决方案。 您可以选择多个提交,然后从弹出菜单中选择“Squash Commits...”:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.