【发布时间】:2011-07-15 14:16:09
【问题描述】:
我有一个远程 Git 服务器,这是我想要执行的场景:
我为每个错误/功能创建一个不同的 Git 分支
我继续使用非官方 Git 消息在该 Git 分支中提交我的代码
在顶级存储库中,我们必须使用官方 Git 消息对一个错误进行一次提交
那么我怎样才能将我的分支合并到远程分支,以便他们只为我的所有签入获得一次提交(我什至想为此提供提交消息)?
【问题讨论】:
-
我不确定我是否完全理解你,但你可能想要一个“章鱼合并”。
-
我通常使用 git rebase -i 将我的所有提交折叠成一个提交并重新编写提交消息。然后我将它发送到上游。
-
git merge --squash在命令行上一次性完成所有操作,您只希望它有效。git rebase -i调出一个编辑器,让您微调变基。它速度较慢,但您可以看到自己在做什么。此外,rebase 和 merge 之间存在一些差异,这些差异有点过于复杂,无法在评论中解决。 -
所有这些答案的问题是您必须在本地主分支上并运行 merge --squash 命令...我想从功能分支运行 merge --squash不是master分支..所以当我完成后,我可以将功能分支推送到远程并提交PR,这可能吗?
-
@AlexanderMills,我认为您只需要第二个功能分支(从主分支克隆)。将
merge --squash从旧分支到新分支,然后将新分支合并到master。旧分支已过时。
标签: git git-merge git-squash