【问题标题】:What do I go after resolving all of my merge conflicts and commiting them?解决所有合并冲突并提交后我该怎么办?
【发布时间】:2020-04-10 02:15:49
【问题描述】:

我正在尝试将拉取请求与我的项目合并,但它发生了冲突。我下载了他们的分支,然后浏览了每个文件并解决了冲突,然后我提交了每个文件。

我按照这里的说明进行操作:https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line

最后它说“您现在可以在命令行上合并分支或将您的更改推送到 GitHub 上的远程存储库,并在拉取请求中合并您的更改。”但我不明白这是什么意思。

如何将拉取请求与已解决的合并冲突合并?

如果我只是尝试git push,我会得到这个:

! [rejected] master -> master (fetch first) 提示:更新是 被拒绝,因为遥控器包含您提示的工作:没有 本地。这通常是由另一个存储库推送提示引起的:to 相同的参考。您可能希望首先集成远程更改提示: (例如,'git pull ...')再次推送之前。`

【问题讨论】:

  • 你有两种方法可以解决。请参考此link
  • 听起来我想“在完成 PR 之前从目标合并到当前分支”,但它没有说明要使用什么命令
  • 您按照错误的说明进行操作。这是你想要的页面:help.github.com/en/github/… pull request 期间的合并冲突很特殊,因为 github 向分支添加了额外的提交。
  • 该页面显示“提示:如果解决冲突按钮被停用,则您的拉取请求的合并冲突太复杂而无法在 GitHub 上解决。您必须使用另一个 Git 客户端(如 Atom 的 Git 集成或命令行。有关更多信息,请参阅“使用命令行解决合并冲突。”,这是我最初所在的页面。我正在尝试通过命令行合并它

标签: git github


【解决方案1】:

您应该能够推送您的更改,现在包括合并解析到您的主存储库

【讨论】:

  • 我在推他们的分支吗?还是只是将他们的整个分支和更改推送给我的主人?
【解决方案2】:

我不完全清楚您是否使用git fetch 来获取您的所有他们的提交,以便一切都是最新的,在本地运行git merge,解决所有冲突,并在本地提交。

如果您做了所有这些操作,则错误只是意味着在您开始合并过程之后,您从中获得最新提交的 GitHub 存储库获得了一些最近次提交。您现在必须重复刚才所做的一些工作。您可以保留所做的合并及其解决方案,或者重新开始。如果你重新开始,你通常必须重新制定你已经做出的所有决议,这通常是相当痛苦的,当然,如果这需要一段时间,这种情况很容易再次发生:你所在的 Git 存储库从中获取提交,然后合并你的 PR 是一个移动的目标,你必须在它再次移动之前完成所有工作。

如果你没有做所有这些,那么问题就在于你没有做所有这些。始终确保您自己的 Git 存储库具有所有在您开始时其存储库所具有的提交:更新您的 Git 存储库:

git fetch origin

并使用 git log --all --decorate --oneline --graph 或图形 Git 浏览器(gitk 或任何更高级的浏览器)查看 您的 分支名称现在如何与您的 远程跟踪 (origin/*) 名称。确保您的 master 与他们的 master 匹配。使用 git fetch refs/pull/<em>number</em>/head:to-merge 或类似方法从 GitHub 存储库中获取待合并的提交。 (您可能希望在本地创建一个 pr-<em>number</em>pr/<em>number</em> 分支以“同时”处理多个拉取请求,或多或少。)

在我看来,并不是所有这些都在 GitHub 帮助页面上得到了很好的描述,但是设置正确的背景然后正确地描述它需要 很多 单词和示例。 p>

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 2014-01-21
    • 2021-01-20
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2020-03-12
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多