Dan*_*iaz 12 git git-merge git-merge-conflict
我有一个从开发延伸出来的“featurex”分支。当我提出拉取请求来开发时,我会遇到冲突。我正在尝试按以下几行修复它:
可能是我的流程不对...
小智 18
答案是git merge --continue然后git push。
例如,您解决了冲突,那么您当然没有任何要提交的内容,因此您只需执行 a git merge --continue,它就会进行空提交。
其他答案说了一些关于git rebase但我想如果你已经提交到远程分支,那么 rebase 不是一个选项,因为你随后被迫重写历史记录。所以你被迫使用git push --force这是一个不好的模式。我想对于任何遵循西斯黑暗力量实践的人来说这都是可以的。
有时会发生这样的情况,在解决合并冲突的同时,最终的结果是“不进行任何更改”。
\n\n例如,考虑以下文本文件的行:
\n\nBalls come in several colors. Red is the most popular.\nRun Code Online (Sandbox Code Playgroud)\n\n这就是文件在某些提交中出现的方式。现在您和您的同事都获得了此提交并开始工作。与此同时,销售人员告诉您,事实上,绿色是最受欢迎的。
\n\n你的同事是英国人,他这样做了:
\n\nBalls come in several colours. Green is the most popular.\nRun Code Online (Sandbox Code Playgroud)\n\n你这样做了:
\n\nBalls come in several colors. Green is the most popular.\nRun Code Online (Sandbox Code Playgroud)\n\n你们都承诺了,但你的同事git push在你之前就发生了git push。然后,当您运行有关推送是非快进的错误时git push,您获得了同事的提交\xe2\x80\x94,它更改了单词的拼写并修复了最流行的声明\ xe2\x80\x94 然后你让 Git 尝试使用git rebase.xe2\x80\x94 将你的更改与他们的更改结合起来。
当然,您可以选择将拼写切换回,color但假设您选择保留英式拼写。在这种情况下,此合并冲突的正确解决方案是删除对文件的更改。
如果这是整个提交中唯一的更改,那么现在正确的解决方案是完全删除您的提交。该命令将为您提供此选项!您必须简单地通知 Git 出现这种情况,方法是:git rebase
git rebase --skip\nRun Code Online (Sandbox Code Playgroud)\n\n使用之前请确保这是正确的选项。
\n\n\n\n\n可能是我的流程不对...
\n
是否变基或合并既是个人也是团队的决定。一种尺寸并不适合这里的所有情况。只有您和您的同事/团队可以决定这一点。
\n\n如果您选择使用 将您的提交与他们的提交合并git merge,您将无法选择完全放弃您的提交。合并添加新的提交,而不是复制现有的提交;现有的提交全部保留,因此无法删除提交。但是,如果您正在进行真正的合并,而不是重新设置基准,则不会遇到此问题:git merge --continue或git commit\xe2\x80\x94 任一命令在此时执行相同的操作\xe2\x80\x94 将进行新的合并提交,作为其快照,它将具有您为此合并冲突选择的任何解决方案。