合并冲突后提交信息存在问题

5

我是Git的新手。目前,我遇到了以下情况:

步骤0. 我正在一个子分支上工作

步骤1. 我已经添加并提交了文件1、文件2和文件3到我的子分支,并分别使用了提交信息msg1,msg2,msg3

步骤2. 我使用checkout master命令切换到主分支

步骤3. 我使用pull origin master命令更新最新的源代码以更新主分支

步骤4. 我使用merge sub-branch命令将我的工作代码合并到当前的主分支代码中

然后,我在文件2中出现了冲突。

接着,我手动解决了这些冲突。现在,由于该文件发生了更改,需要将文件2添加进来。

步骤5. 我在主分支中使用add file2命令,因为我已经解决了这个文件的冲突

步骤6. 现在我该写什么提交信息呢?只有msg2吗?还是需要重新编写所有的提交信息msg1,msg2,msg3?(我不想失去我所工作的文件的提交信息msg1,msg2,msg3

2个回答

9

你不是为那些已合并的提交编写新的提交信息;而是为合并提交本身编写提交信息。你的历史记录将如下所示:

- 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中的冲突。如果你愿意,可以添加一个关于冲突原因及如何解决的快速注释。否则,就直接使用该消息!请记住,这只是合并(和冲突解决)的描述。你合并的提交具有自己的提交消息。


3

一旦您解决了冲突并使用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:如果没有参数调用,应该打开默认的提交消息编辑器,并提供一个不错的消息来解释合并和已解决的冲突(我认为)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接