合并git分支而不移动分支指针

vir*_*tor 3 git

我正在寻找一种解决方案,将功能分支应用到 git 中的开发分支,而无需实际移动分支指针。本质上,我想从功能分支创建一个提交,并确保它以某种方式指向原始分支(在日志中提及可能就足够了)。

我知道堆叠的 git 应该提供类似的东西,尽管这会为我宁愿避免的标准工作流程引入新的命令。

我想要实现的是某种功能管理,它允许我们应用/删除整个功能,同时保持补丁分支本身的可见性。如果我确实合并了分支,则大多数尝试区分更改的命令都不会执行我想要的操作,因为该分支已经合并到开发中。

我无法真正遵循上游 - 有时通过获取新标签并仅重新应用需要的功能而不是解决冲突和恢复冗余功能来更容易纠正并发更改 - 所以这种工作方式是不可能的。另一方面,我确实希望看到更改,以便我可以对其进行修改以匹配新版本,或者稍后向上游提交。

vha*_*lac 6

其实还有更简单的方法。该git merge命令有一个选项--squash,它只是累积要合并的分支的所有更改,并将它们添加到暂存区。

因此,您可以使用以下命令执行您想要的操作(当您在 master 上并且想要合并功能分支 feature-foobar 时):

$ git merge --squash feature-foobar
$ git commit -m "Implemented feature: foobar"
Run Code Online (Sandbox Code Playgroud)