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