Git技巧:如何创建具有指定最终状态的合并提交
直接创建指定父提交的合并提交(复用已有提交状态)
要实现这个需求,直接用git commit-tree命令就能搞定——它允许你跳过Git的自动合并流程,手动指定父提交并复用已有提交的代码状态:
先获取提交C对应的代码树哈希(这是代表C的代码库状态的核心标识):
git rev-parse C^{tree}执行后会输出一串哈希值,可直接在下一步命令中引用。
创建以A、B为父提交,代码状态与C完全一致的合并提交:
git commit-tree C^{tree} -p A -p B -m "自定义合并提交信息"-p A和-p B分别指定两个父提交,生成的就是标准合并提交C^{tree}直接复用C的代码树,完全跳过合并冲突解决流程
执行后会输出新生成的合并提交的哈希值。
(可选)如果要把当前分支指向这个新的合并提交,执行:
git reset --hard <新提交哈希>
注意:这个操作属于重写本地提交历史,确保当前分支没有推送到公共远程仓库,或者已经和团队成员沟通确认,避免历史不一致导致的协作问题。
内容的提问来源于stack exchange,提问作者Brondahl
相关产品推荐
相关产品推荐

