为什么git commit会导致一个分离的HEAD?



我正在运行子模块更新合并标志,以避免在分离的HEAD状态结束。

git submodule update --init --force --remote --merge

此时git status返回On branch master

但是当我运行

git commit -m "commit message"

[detached HEAD 0375093] commit message
2 files changed, 89 insertions(+), 6 deletions(-)

为什么git commit会导致分离状态?

对于任何有此问题的人,以下是我所做的修复:

git add folder/file1.txt
git commit -m "made new changes"
git branch temp
git checkout master
git merge temp
git push origin master
git branch -D temp

在分离的HEAD状态下提交后,您将获得一个匿名分支。从这里你可以

  • 创建临时分支
  • Checkout out master
  • 将临时分支(包含在分离状态下的提交)合并到master并推送到remote。
  • 删除临时分支

问题仍然存在:为什么git submodule update --init --force --remote --merge导致分离的头部状态?