为什么我在 gitlab/git merge-request/merge 期间得到一个分离的 HEAD?
Why am I getting a detached HEAD during gitlab/git merge-request/merge?
首先要提到的是,我已经尝试了之前问题中的一些事情,但其中 none 符合我的情况。
- This does not somehow "register" as a merge in gitlab. 我得出这个结论是因为当我尝试在合并后删除分支时,git 发出警告。当然我可以强制删除分支,但我更愿意保持合并历史干净。
- This answer, afai understand, seems to be for sub repositories/modules 这不是我在这里的设置。
- Did not experiment with it to avoid any possible further inconsistency.
场景是这样的:
我在 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: "resolve WIP" > "Merge" 通过单击按钮,坦率地说,我不确定 BHS 是做什么的。但是必须补充一点,当我确实使用 UI 时,我没有得到一个分离的 HEAD)我是唯一的开发人员并且还没有单独的审阅者,所以我不知道说明中的第 1 步和第 2 步是否多余(它试图创建 MR 分支。这对审阅者来说很有意义,但作为该功能的开发人员,我已经拥有该分支,所以 git
会抛出一个错误,如上所示,因此对 运行 没有意义在 checkout
之前再次 git fetch origin
)。
如何解决此 detached HEAD
以便将其记录为 19-some-function
与 master
的合并? question/answer (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
当您要求结帐 origin/master 时,您将自己设置为 detached HEAD 状态。你没有签出 local branch master,所以你必须放在 detached HEAD 上。但没关系。然后你可以合并你想要的 PR 分支然后推送到 origin/master 如果你想:
git push origin HEAD:master
首先要提到的是,我已经尝试了之前问题中的一些事情,但其中 none 符合我的情况。
- This does not somehow "register" as a merge in gitlab. 我得出这个结论是因为当我尝试在合并后删除分支时,git 发出警告。当然我可以强制删除分支,但我更愿意保持合并历史干净。
- This answer, afai understand, seems to be for sub repositories/modules 这不是我在这里的设置。
- Did not experiment with it to avoid any possible further inconsistency.
场景是这样的:
我在 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: "resolve WIP" > "Merge" 通过单击按钮,坦率地说,我不确定 BHS 是做什么的。但是必须补充一点,当我确实使用 UI 时,我没有得到一个分离的 HEAD)我是唯一的开发人员并且还没有单独的审阅者,所以我不知道说明中的第 1 步和第 2 步是否多余(它试图创建 MR 分支。这对审阅者来说很有意义,但作为该功能的开发人员,我已经拥有该分支,所以 git
会抛出一个错误,如上所示,因此对 运行 没有意义在 checkout
之前再次 git fetch origin
)。
如何解决此 detached HEAD
以便将其记录为 19-some-function
与 master
的合并? question/answer (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
当您要求结帐 origin/master 时,您将自己设置为 detached HEAD 状态。你没有签出 local branch master,所以你必须放在 detached HEAD 上。但没关系。然后你可以合并你想要的 PR 分支然后推送到 origin/master 如果你想:
git push origin HEAD:master