GitHub"无法自动合并"?

use*_*374 28 git merge github

有时当我尝试将head fork合并到我的基础fork中,或者我的基础fork合并到head fork中时,我在GitHub上收到以下消息:

"无法自动合并.别担心,你仍然可以创建拉取请求."

如果有冲突,如何查看冲突?

我已经阅读了大约10个不同的例子和各种命令但我不知道在我的情况下示例中的名称适用于基础,分支,分支等的不同名称.

在所有这些之后,我无法相信没有可以键入的命令来查看冲突,编辑冲突并继续合并.如果有,我还没有找到它.

Tho*_*ger 23

这意味着如果没有上游所有者必须解决合并冲突,您的pull请求就无法合并到上游.

这里的解决方案是让您从上游进行提取,然后解决上游的合并冲突.此时,如果您理论上解决了来自上游的冲突然后创建了拉取请求,则上游将能够自动合并您的拉取请求而不会发生任何冲突(前提是您在本地解析上游之间没有上游提交合并冲突并合并到本地/ fork,然后创建pull请求).

我们在这里使用GitHub作为远程仓库存储的示例.

OriginalAccount\repo1 - 说这是原始存储库(我们将其称为"上游")

YourAccount\repo1 - 这将是你的存储库的力量(这通常是"原始"远程)

repo1 local - 这是存储库的本地副本.

当您从YourAccount\repo1OriginalAccount\repo1(几乎从原点上游)创建拉取请求时,通过让您无法自动合并的消息意味着OriginalAccount\repo1提交了YourAccount\repo1没有的提交(提交你分叉后最有可能推动的).

这里的解决方案是从上游获取到本地存储库(从OriginalAccount\repo1到本地存储库)并在本地解决任何合并冲突.然后将您的提交推送到YourAccount\repo1.此时,您应该能够创建应该能够自动合并到OriginalAccount\repo1的 pull请求.

注意:尽管大多数Git服务不会阻止您继续执行需要上游贡献者解决合并冲突的pull请求,但确保您的pull请求合并没有冲突是一种良好的做法和良好的礼仪.想想这样,您应该进行合并冲突解决工作,而不是让上游贡献者从您的贡献中完成这项工作.

  • 我甚至不知道这意味着什么"从上游解决冲突然后创建你的拉动请求" (2认同)
  • 丢失。这可以用 Github 完成吗?我尝试将头叉拖到左合并广场,将我的分支拖到右合并广场,然后单击合并分支和同步,但这仍然不能解决问题。 (2认同)
  • 不起作用,我明白了概念,但不知道如何实现 (2认同)

小智 15

假设有你的分支和主分支.您希望将更改从您的分支合并到主服务器以供其他人查看,但是其他人在此期间对主服务器执行了相互冲突的更改(例如合并其PR).在创建PR之前,将master合并到您的分支(即以相反的方式进行合并)通常很有用.

在命令行中,您可以:

git checkout master
git pull
git checkout your-branch
git merge master
Run Code Online (Sandbox Code Playgroud)

现在您可以看到冲突列表.按照从git获得的消息来解决冲突.您可以使用自己喜欢的工具,因此更容易.最后,你提交并推送.当您重新创建PR时,应该没有冲突.

  • 坚持使用这些相同的示例分支,您可以通过检查您的分支,然后执行以下操作来缩短所需的命令量: git pull origin master (2认同)
  • 谢谢你让我省心 (2认同)