git - 合并分支后如何干净地执行 git pull-with-rebase
问题描述
替代标题:如何压缩合并提交?
我的本地存储库中有以下状态:
C (origin/feature)
/
A - B - m (feature)
/
Y - Z (master)
我刚刚合并了从一个分支到另一个分支的更改(例如,从主分支到我们的特性分支,反之亦然)。当我这样做时,提交 B 和 Z 是各自分支中最新的提交。
然而!Dastardly Dan 只是将他的更改推送到我正在合并到 (C) 的分支。当我现在尝试推动时,我做不到。我首先必须获取更改并以某种方式合并它们。问题是:如何?
如果我使用 rebase 进行拉动,我最终必须解决 B 和 Z 之间合并中的所有冲突。如果我尝试合并,我最终会得到两个合并提交,这不是那么干净,也不应该没那么必要。
C --
/ \
A - B - m - m2
/
Y - Z
有什么方法可以压缩 m 和 m2 使其看起来像:
C --
/ \
A - B -- m3
/
Y - Z
交互式 rebase 显然不会显示合并提交,并且樱桃选择要求我再次解决所有合并冲突(在 B 和 Z 之间,根本不受 C 影响)。
解决方案
为了从:
C --
/ \
A - B - m - m2
/
Y - Z
至:
C --
/ \
A - B -- m3
/
Y - Z
您可以按照此答案git commit-tree
中的建议使用:
git commit-tree -p C -p Z m2^{tree}
推荐阅读
- azure - 如何结合 AD B2C(MSAL) 和 CosmosDB
- java - 在 Java/Groovy 中,catch(e) 是 catch(Exception e) 的简写吗?
- laravel - Laravel - 根据 id 从另一个表中获取数据
- ruby-on-rails - 用复杂的计算函数更新rails数据库整列
- sql-server - 尽管添加了 WHERE IS NULL 子句,但我的 NULL 记录没有显示
- sql - 在购买另一个产品后找到购买另一个产品的客户
- reactjs - 当用户使用反应单击删除按钮时,如何停止正在进行的上传文件方法?
- android - 从扫描活动中获取结果后在片段中设置编辑文本
- python - 如何将 PIL 图像转换为 numpy 数组?
- typo3 - 单一typo3 v10安装上的多域多语言站点