Git合并冲突已解决,没有要提交的更改

时间:2020-04-20 18:58:37

标签: git git-merge git-merge-conflict

我有一个来自开发的“ featurex”分支。当我提出要求发展的请求时,我就会遇到冲突。我正在尝试在以下行修复此问题:

  1. git checkout Featurex
  2. git merge开发(我有冲突)
  3. 我已解决冲突(保留分支代码)
  4. 我上演冲突的解决方案(舞台上有任何变化)
  5. 我要提交,但没有更改要提交

也许我的过程是错误的...

1 个答案:

答案 0 :(得分:1)

有时候,解决合并冲突时,最终结果是“不做任何更改”。

例如,考虑以下文本文件的行:

Balls come in several colors.  Red is the most popular.

这是文件在某些​​提交中的显示方式。现在您和您的同事都已获得此承诺并开始工作。同时,销售人员告诉您,事实上,绿色是最受欢迎的。

您的同事是英国人,并且这样做:

Balls come in several colours.  Green is the most popular.

您这样做:

Balls come in several colors.  Green is the most popular.

你们俩都承诺,但是您同事的git push发生在您的git push之前。然后,您在运行git push时遇到错误,提示该推送是非快速转发,因此您获得了同事的提交-这会更改单词的拼写并最受欢迎的声明–然后您让Git尝试使用git rebase 将您的更改与他们的更改结合起来。

您当然可以选择将拼写 back 切换为color,但是,假设您选择保留英式拼写。在这种情况下,此合并冲突的正确解决方案是将更改保存到文件中。

如果这是您的整个提交中的 更改,则正确的解决方案是现在完全删除您的提交git rebase命令将为您提供此选项!您只需通过以下方式通知Git就是这种情况:

git rebase --skip

在使用前确保此选项正确。

也许我的过程是错误的...

是否要变基或合并是个人和团队的决定。一种尺寸不适合所有尺寸。只有您和您的同事/团队才能决定。

如果您选择使用git merge将提交与其提交合并,则无法选择完全放弃提交。合并添加 new 提交,而不是复制现有的提交;现有的提交全部保留,因此无法删除提交。但是,如果您要进行真正的合并而不是重新设置基准,您将不会遇到此问题:git merge --continuegit commit –此时两个命令都执行相同的操作–将进行新合并提交,它将为您为此合并冲突选择的解决方案作为快照。