2017-11-06 7 views
1

Gitのドキュメント(特にこのページと関連するコマンドリファレンスページ:https://git-scm.com/book/en/v2/Git-Tools-Submodules)を読むことから、私はまだ、サブモジュールの関連するSHAが正確にはっきりしないと感じていました。「git diff --cached SomeSubModuleテキストはテーマにあまり明示されていないため、更新されます。サブモジュールに関連付けられたコミットリファレンスは、それを含むスーパープロジェクトでいつ更新されますか?

潜在的には、サブモジュール内の現在チェックアウトされているコミットが変更されたとき(例えば、 "git submodule update --remote"を介して)リファレンスが更新され、スーパープロジェクトでコミットが反映されるこの変化。しかし、それが正しいのか、私が誤解しているのかを確認したいと思います。

+0

悪い昔(Git 1.5、1.6、おそらく1.7)でサブモジュールを扱っていませんでしたが、その後何が起きているのか分かりません。当時、明示的に 'git add path/to/submodule' - ここに末尾にスラッシュがないことに注意してください! - Gitに次のコミットのためにSHAを更新させるようにしてください。確かに変わっていないのは、新しいSHAを導入するためには、新しいSHAをインデックスで更新する必要があるということです。 'git commit'とは、「インデックスにあるものは何でも」です。 – torek

答えて

1

参照の更新現在チェックアウトがサブモジュールにコミットはい、それだけではないgit submodule update --remote

を変更しました。
サブモジュール内でコミット(またはフェッチ)が行われると変更されます。その後、

とコミットは、その要素がgitlinkspecial entry in the main repo index)され、変更された要素を追加してコミットする、より正確

この変更を反映するために、親プロジェクトで作られて
することはできまた親リポジトリからそのgitlinkを更新してください: "Git Submodule has a wrong reference to its remote repository"を見てください。

関連する問題