0

首先要提一下,我已经尝试了之前问题中的一些东西,但它们都不适合我的情况。

  1. 这不会以某种方式“注册”为 gitlab 中的合并。我得出这个结论是因为当我在合并后尝试删除分支时,git 抛出了一个警告。当然我可以强制删除分支,但我更愿意保持合并历史的干净。
  2. 这个答案,据我所知,似乎是针对子存储库/模块的,这不是我在这里的设置。
  3. 没有对其进行试验以避免任何可能的进一步不一致。

这是场景:

我在 GitLab 中有一个存储库,我正在尝试解决合并请求,即将 MR 的关联分支合并到 master。在提交并将所有更改推送到 MR 分支19-some-function后,我按照 Gitlab [4] 中的说明进行手动操作merge,从而产生一个detached HEAD状态。

$ git fetch origin

$ git checkout -b 19-some-function origin/19-some-function
fatal: A branch named '19-some-function' already exists.

$ git checkout origin/master
Note: switching to 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental 
[truncated]

$ git merge --no-ff 19-some-function
Merge made by the 'recursive' strategy.
 package-lock.json                                  |  55 +++++++
 package.json                                       |   1 +
 src/Common/Constants.js                            |   2 +-
 src/Common/utils.js                                |  23 +++

(与通过 Gitlab MR 页面 UI 执行此操作相反:“解决 WIP”>“合并”通过单击按钮坦率地说我不确定 BHS 的作用。但是必须添加,当我使用 UI 时,我做到了没有得到分离的 HEAD)我是唯一的开发人员,还没有单独的审阅者,所以我不知道说明中的第 1 步和第 2 步是否是多余的(它试图创建 MR 分支。这对审阅者来说很有意义,但是作为该功能的开发人员,我已经拥有该分支,因此会引发错误,如上所示,因此之前再次git运行没有意义)。git fetch origincheckout

我该如何解决这个问题detached HEAD,以便将其记录为 with 的19-some-function合并master?上述问题/答案(2)会有帮助吗?

[4] MR 分支是19-some-function

Check out, review, and merge locally
×
Step 1. Fetch and check out the branch for this merge request
  git fetch origin
  git checkout -b 19-some-function origin/19-some-function

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up
  git fetch origin
  git checkout origin/master
  git merge --no-ff 19-some-function

Step 4. Push the result of the merge to GitLab
  git push origin master
4

1 回答 1

4

当您要求结帐origin/master时,您将自己设置为分离的 HEAD状态。您没有签出本地分支 master,因此必须将您放在分离的 HEAD上。但这没关系。然后,您可以合并您想要的 PR 分支,然后如果您愿意,可以推送到 origin/master:

git push origin HEAD:master
于 2020-01-02T07:40:23.380 回答