Comprendre git sous-module et le “gel” sur un commit de hachage ou de version

En supposant que la suite de présentation de projet:-

mainrepo_git
    |____ .git
    |____ .gitmodules
    |____ proj            <------- directory containing the code files for mainrepo
            |____ 3rdpartysourcecode <-- directory containing upstream open source code
            |      |____ .git
            |      |____ 3rdpartyfiles
            |
            |____ mainrepofilesanddirectories  

mainrepo_git contient le code source, je suis directement responsable. J'ai accès en lecture/écriture et peut pousser et tirer directement à distance à un dépôt git qui je gère.

Imbriquée à l'intérieur d' mainrepo_git est un répertoire que j'ai nommé 3rdpartysourcecode. Cette 3rdpartysourcecode répertoire est en fait un autre repo git (aussi communément appelé un "git sous-module") qui pointe vers l'open source 3ème partie dépôt git gérés par d'autres développeurs. Je n'ai qu'un accès en lecture. Pas d'accès en écriture.

Est-il possible de "geler" un spécifique de commettre hachage de l'git sous-module par rapport à une livraison faite dans mon référentiel principal?

Par exemple, si je suis (ou j'revenir à) s'engager a12ucak dans mon mainrepo, mon git sous-module obtient également revenue à une version spécifique qui je l'attache à commettre a12ucak? Et lorsque je passe à commettre b349jdsak, mon git sous-module obtient également revenue à une version qui je l'attache à b349jdsak?

Donc ma question est: il existe un moyen de créer un lien entre un particulier s'engager dans les principaux repo avec une validation correspondante dans le git sous-module? En sorte que quand je caisse spécifique s'engager dans le git de pensions de titres, la validation correspondante dans le git sous-module sera également de la caisse.

OriginalL'auteur Calvin Cheng | 2011-08-30