-1

gitサブモジュールは現在ブランチ上にあり、それが先端にあるかどうかはわかりません。必要に応じてサブモジュールをプルアップできるように、ブランチのチップのコミットIDを取得するにはどうすればよいですか?

4

1 に答える 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 に答える