如何解决“与策略合并失败”的问题?

问题描述 投票:0回答:1

我尝试在推送到我的分支后创建一个新的拉取请求,因为我想将我的分支合并到主分支中。 GitHub 的回应是“这个分支有冲突需要解决”。但是,冲突如此复杂,我应该在本地解决。对此的建议是:
第 1 步: 克隆存储库或使用最新更改更新本地存储库。

git pull origin main

第2步:切换到拉取请求的头分支。
git checkout myBrach

第3步:将基础分支合并到头分支。
git merge main

第 4 步: 修复冲突并提交结果。
有关解决合并冲突的分步说明,请参阅使用命令行解决合并冲突。
第 5 步: 推送更改。
git push -u origin myBranch

但是在

git merge main
之后我收到以下错误:

error: Your local changes to the following files would be overwritten by merge:  
 ... // Files listed  
Merge with strategy ort failed.  

我认为这个建议将帮助我更新 myBranch 并删除“main 后面的提交”。我不知道这个错误

Merge with strategy ort failed
意味着什么以及如何在不丢失代码的情况下解决这个问题。

github merge pull-request
1个回答
3
投票

merge main
步骤不是推荐的最佳实践。

您可能会考虑在合并之上重新调整分支,然后强制推送您的分支(这将更新 PR)

通过在主分支之上重新提交分支提交,您将在本地解决冲突。

git switch main
git pull origin main

git switch myBranch
git rebase main
# resolve any local conflict

git push --force

通过变基,冲突一次只处理一个提交。这使您可以了解每个冲突的上下文,因为您正在有效地重写历史记录,使分支的更改看起来像是直接在主分支的最新版本上进行的。

它避免了历史记录中不必要的合并提交。通过一一重新应用提交,您可以维护干净的线性历史记录。

并且,关于 PR,变基可确保您的更改与最新版本兼容,并提供干净的历史记录,而无需合并提交。

由于 GitHub PR 会在每个

git push --force
上自动更新,因此该方法是推荐的工作流程。

© www.soinside.com 2019 - 2024. All rights reserved.