【问题标题】:problem with commit message after conflicts been resolved when merge合并时解决冲突后提交消息的问题
【发布时间】:2011-07-22 06:10:47
【问题描述】:

我是 Git 新手。目前,我正在经历这种情况:

第 0 步。我正在开发一个-分支

第 1 步。我在我的 sub-分支上添加并提交了 file1、file2、file3,并分别带有提交消息 msg1、msg2、msg3

第二步,我checkout master切换到ma​​ster分支

第 3 步。我 pull origin master 用最新的原始版本代码更新 master 分支

第 4 步。我 merge sub-branch 将我的工作代码合并到当前的主分支代码

然后,我在 file2 中遇到了冲突,

然后,我手动解决了这些冲突。现在,需要添加 file2,因为此文件有更改。

第 5 步。我在 master 分支中add file2,因为我已经解决了这个文件的冲突

第 6 步。我现在应该写什么提交信息? msg2 只有?还是 msg1, msg2, msg3 现在都需要重写? (我不想丢失我工作的文件的提交消息 msg1,msg2,msg3

【问题讨论】:

    标签: git git-branch git-commit


    【解决方案1】:

    您不是在为这些合并的提交编写新的提交消息;您正在为合并提交本身编写提交消息。您的历史记录将如下所示:

    - x - o - o - o (origin/master) - X (master)
       \                             /
        1 - 2 - 3 (sub-branch) ------
    

    您正在编写的提交消息是针对X。提交 123 是祖先,仍然在历史中,并且它们仍然有提交消息。没有办法通过合并来改变那些。

    X 的提交消息,如果没有冲突,将默认为 Merge branch 'sub-branch'。如果您确实有冲突,它仍然会将其作为第一行,而且还会列出有冲突的文件:

     Merge branch 'sub-branch'
    
     Conflicts:
         file2
    

    这是一个温和的暗示,表明您已经完成了比简单合并更重要的事情 - 您必须做一些手动工作来解决 file2 中的冲突。如果您愿意,您可以添加关于导致这些冲突的原因以及如何解决它们的快速注释。否则,请按原样使用该消息!请记住,这只是对合并(和冲突解决)的描述。您合并的提交有自己的提交消息。

    【讨论】:

      【解决方案2】:

      一旦你解决了冲突和git add <conflicted file> 当你继续git commit 它应该为合并和任何已解决的提交提供一个预构建的提交消息。不是吗?其他合并的提交不会丢失,您不必重写任何内容。

      1. 提交到 BranchB
      2. git checkout master
      3. git pull origin master
      4. git merge BranchB
      5. 解决文件中的冲突
      6. git add <conflicted file(2)>
      7. git commit

      第 7 步:如果在没有参数的情况下调用,则应打开默认提交消息编辑器,并显示一条体面的消息,解释合并和已解决的冲突(我相信)

      【讨论】:

        猜你喜欢
        • 2021-01-02
        • 2021-07-28
        • 1970-01-01
        • 2021-01-20
        • 1970-01-01
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多