如何在完成合并后(但在推送之前)压缩一些 git 提交

问题描述 投票:0回答:1

我刚刚经历了一次漫长的合并冲突,并注意到我的工作树中有一堆提交,这些提交应该在合并之前被压缩。我还没有推送合并,但我想避免在检查新分支并进行挤压后重新进行合并。

有没有一种方法可以让我执行类似于挑选合并提交但更改合并的相关父级的操作?

git merge
1个回答
0
投票

TL;博士

您可以在重做合并过程中使用

git checkout saved-branch .
将提交/分支的内容检出到当前沙箱中。

假设

我假设您已将分支

feature
合并到
main
中,并希望在重做合并之前压缩
feature
中的一些提交。

详细配方

我使用的解决方案是

  1. 通过给它一个新的分支名称来保存当前合并:

    git branch saved-merge main
    
  2. 交互式地重新建立分支基础:

    git checkout feature
    git rebase --interactive <ref-to-parent-of-feature-branch>
    
  3. 重做合并,但不解决冲突,只需检查已保存合并的内容

    git checkout main
    git merge feature
    git checkout saved-merge .
    git commit
    

关键是这个

git checkout saved-merge .
:它将
saved-merge
上的头提交的完整内容检查到您的沙箱中,用您第一次解决的版本覆盖所有带有冲突标记的文件。

© www.soinside.com 2019 - 2024. All rights reserved.