代码之家  ›  专栏  ›  技术社区  ›  Ryan

合并冲突在挤压提交时破坏了我的提交消息

  •  11
  • Ryan  · 技术社区  · 15 年前

    git merge --squash feature-branch ,我得到了一个很好的“压缩提交以下内容”消息,它自动填充了来自feature分支的所有提交消息。

    但是,如果存在任何合并冲突(例如,我在处理这个特性时完成并合并了另一个特性),我似乎会丢失来自分支的所有提交消息。自动填充的提交消息填充冲突,但不填充提交消息。我的提交消息去了哪里?我能把它们拿回来吗?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Community Mohan Dere    8 年前

    这并不能直接回答你的问题,但你首先应该能够避免冲突。

    考虑做一个

    git rebase master topic
    

    在执行合并之前。本页的说明部分 http://git-scm.com/docs/git-rebase 应该是有帮助。这个也可以省去挤压的需要,因为一个交互式的回退将允许您挤压您选择的提交。

    编辑: 另请参见: In git, what is the difference between merge --squash and rebase?

        2
  •  7
  •   MikeK    13 年前

    是的,您可以取回压缩提交消息。它存储在.git/SQUASH\u MSG中。

    可以通过以下命令将其用作模板:

    git commit -t .git/SQUASH_MSG
    
        3
  •  1
  •   gawi    15 年前

    没有什么是真正失去了git。功能分支上的提交列表可以通过以下方式获得:

    git cherry feature-branch
    

    git cat-file :

    git cherry feature-branch | cut -f2 -d' ' | git cat-file --batch