为什么我的 github 合并方向错误?

Why did my github merge go in the wrong direction?

a repo on GitHub 有一个分支 (handtracking),我正在做一些开发。与此同时,我对 master 做了一些更改,我想将它们合并 master handtracking,这样我的开发分支就会有最新的更改。

我在 Windows 上使用 Github 桌面客户端来执行此操作,我没有使用命令行。我执行了以下步骤(除非另有说明,否则在 Github 桌面中):

  1. 提交所有更改,同步所有内容以准备。
  2. 通过分支下拉菜单切换到 master 分支。
  3. 在客户端创建拉取请求并选择目标分支;它明确指出 "from master into handtracking".
  4. 提交了,然后opened it on the web site,里面也写得很清楚 master -> handtracking.
  5. 有冲突;所以我选择在网站编辑器上解决它们。出于某种原因,当我这样做时,它将决议提交给 master,尽管我在任何地方都看不到对此的实际提交。这部分是我感到困惑的地方。
  6. 然后我在网站上的拉取请求上单击了合并按钮,它仍然说它正在从 master 进入 handtracking

但是,此时,它创建了两个提交。 One from handtracking into master, which is where all the wrong way stuff happened; and then a second one from the updated master back into an apparently new handtracking branch("apparently new" 因为颜色在 Insights -> Network 视图中发生了变化)。

第二次提交是引用拉取请求的提交,并且是我预期会发生的唯一一次提交。第一个好像是凭空冒出来的,把所有 handtracking 的变化合并成 master,这是我不希望发生的。

网络图现在看起来像这样(突出显示的部分是整个过程创建的):

但我预料会是这样的:

我的问题是:

  1. 到底发生了什么事?我的错误是什么?我不明白第一个 handtracking -> master 合并是从哪里来的,尤其是因为在每一点都有描述清楚地说明合并是朝着另一个正确的方向发展的。

  2. 如何在仍然使用 Github 桌面 + 网站的同时避免这种情况?还是只有命令行客户端才能做到这一点?

我知道(我想?)我以前做过这个没有问题,我不知道这次有什么不同。

使用 git 并阅读如何在没有 web gui 的情况下进行合并,因为它非常有限。这个过程非常简单。在此阶段,如果需要,您可以恢复更改,否则只需使用 git。你最后做的是同步合并。