Intégrer un dépôt externe par subtree

# git remote add extern git@git.my.domain:group/extern.git
# git subtree add --prefix subdir/ --squash extern develop
# cd subdir
# ls

Modifier le dépôt local

# cd subdir/
# touch file
# git add file
# git commit -s -m "add file to project" file
# git push origin develop

Aucune modification n’est appliquée au dépôt externe ; les fichiers sont ajoutés uniquement au dépôt courant.

Comparer les différences avec le dépôt externe

# git diff extern/develop develop:subdir/

Mettre à jour le dépôt externe

# git subtree push --prefix subdir/ extern develop

Les modifications locales sont répercutées au dépôt externe, sachant que seuls les fichiers présents dans subdir/ sont pris en compte lors de la comparaison.

Récupérer les dernières modifications du dépôt externe

# git subtree pull --prefix subdir/ extern develop