一个 git 子模块目前在一个分支上,我不确定它是否在尖端。如何获取分支提示的提交 ID,以便在必要时拉起子模块?
问问题
376 次
1 回答
3
如果你在foo
子模块的一个分支上,那么根据定义你就在那个分支的顶端。也许你想要的是根据“超级模块”中提交的版本找出子模块应该在什么提交?为此,您可以执行以下操作:
$ git rev-parse HEAD:mysubmodule
1b6577014983eb68c56025e6d3b95c8b9b7fc511
...然后将其与:
$ cd mysubmodule
$ git rev-parse HEAD
4dd9ac74b6dc1d0df8de5029656663bd879a4773
但是,您只需查看以下输出即可更轻松地看到这一点git status
:
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: mysubmodule (new commits)
“新提交”表示您的子模块落后于提交的版本,应该使用git submodule update mysubmodule
.
您还可以从 的输出中看到这一点,如果需要更新子模块,则git submodule
与您的子模块对应的行将以该行开头。+
您的问题的另一种解释是您的子模块位于分支上foo
,但您想知道分支的尖端foo
在远程存储库中的位置。为此,您可以执行以下操作:
$ cd mysubmodule
$ git fetch origin
$ git rev-parse origin/foo
于 2012-10-22T14:24:26.910 回答