git - 如何使用 SmartGIT 在一次提交中将多个提交从分支 merge 到主控?

标签 git merge smartgit git-squash

我有一个名为 work_in_progress 的分支,用于调试和测试包含许多小提交的代码。它们都有冗余的提交信息。 完成后,我想将 squash merge 到 ma​​ster 分支。通常这是使用 --squash 参数 merge 时的一个命令。

但是我如何使用 SmartGIT 来做到这一点?

此处的文档 How to perform squash merges似乎是错误的,因为没有选项“由所选提交及其祖先组成的分支”

此处的文档 How to perform normal merges and squash merges根本行不通。我试过了,我仍然在日志中看到所有小的提交。之后我可以删除 work_in_progress 分支,没问题,但我想要在 ma​​ster 分支的历史记录中使用单个提交消息进行一次提交。


编辑:这是我的提交对话框的截图。我想我错过了“简单提交”选项?!可能我没看懂教程^^ enter image description here


编辑 2:这是日志的屏幕截图。顶部的第二个提交是使用 SmartGIT 完成的。您可以看到所有中间提交(包括消息)在历史记录中都是可见的。该分支名为 XYZ_work_in_progress。最后一次(最重要的)提交是使用“git merge --squash ABC_work_in_progress”完成的,但所有提交都被吞没了,所以这是一个干净的历史。来自分支的所有工作都累积到带有一条消息的单个提交中:-) enter image description here

最佳答案

这是典型的情况:在您的功能分支上开发了一些东西,与此同时,世界在不断变化,更多的东西发生在公共(public)主分支上。

之前: rebase 功能分支(推荐)

  1. feature 和 master 分支,全部 pull 和推。没有待定 promise 。
  2. 你应该检查你的功能分支并在它的顶端(head-revision),黄绿色标签告诉你。 (黄色和绿色彼此相邻可以确保没有待处理的推或 pull 。)

enter image description here

4) 右键单击​​ma​​ster 提示(第 1 行)选择 Rebase HEAD to...(当然不是 Rebase to HEAD。 .. ➝ 麻烦,这不会在几个步骤后变得如此明显......)。按对话框中的按钮进行确认。

5) 你得到了在顶部播放的功能提交。作为空心橙色圆圈,因为事情尚未提交。

6) 右键单击​​功能分支,说 Push to...。选择(o)Tracked or matching branch 和—important—[x]Force Pushing(因为您正在“更改功能分支的历史”...)

历史现在看起来很干净,您的提交符合要求,也就是可快速转发:

enter image description here

挤压提交

  1. 切换到( checkout )主树。右键单击功能分支,说 Merge...。在选项对话框中,您必须选择 Merge to Working Tree(否则提交发生时您无法选择任何选项,即 squash)。

enter image description here

  1. 你不一定要去through resolving and then continue .

  2. 最后说一下提交。选择 (o) 简单提交(一个父级,“squash”)

enter image description here

...她就在那里:

enter image description here

关于git - 如何使用 SmartGIT 在一次提交中将多个提交从分支 merge 到主控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277942/

相关文章:

git - 如何设置公共(public) git 存储库?

git - 如何修复 "corrupted"交互式 rebase ?

git - 为什么我会 git checkout --detach

r - 通过匹配值将向量连接到数据框中

Android Studio 翻译编辑器显示缺失的翻译(但事实并非如此!)

git - 在 SmartGit 中找不到私有(private)存储库

git - 如何使用 Git 同时处理多个项目?

python - Pandas fillna with method=None (默认值)会引发错误

javascript - 合并 Javascript 对象中的嵌套数组

git - 使用SmartGit解决git文件冲突 : ours vs theirs