git子模块更新导致分支分歧

时间:2018-08-15 14:16:27

标签: git

我想跳到git历史中的旧分支my_branch,回顾一下我当时所做的事情,并有可能将其合并到我的master分支中。为此,我做到了

git checkout my_branch

回到我的工作。构建时,我注意到构建失败,因为git的子模块与my_branch处理时所使用的旧状态不匹配。为了解决这个问题,我申请了

git submodule update --recursive

但是,这不符合我的预期。子模块未处于当时的状态。上面的命令返回了

First, rewinding head to replay your work on top of it...
Applying: my_commit_msg
Applying: other_commit_msgs
Submodule path 'submod_path': rebased into 'a2e4b6db33b34283f52e7e5f03f6e8f92c93ec22'

并且子模块本身现在说

$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 3 and 3 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean

因此它以某种方式重新应用了更改。在我看来,我的提交“ my_commit_msg”等现在在源/主服务器和本地主服务器上具有不同的ID。

  1. 这里发生了什么事?
  2. 我如何实现我想要的(即,将子模块放回正确的状态?)

P.S。 git版本是2.7.4

0 个答案:

没有答案