Je travaille sur une grande application qui contient un répertoire src/ et je voudrais partager ce que répertoire src/.Comment synchroniser un dépôt git avec un sous-répertoire d'un autre référentiel
Alors, je voudrais pousser périodiquement ce répertoire src/ à un autre référentiel (et de garder les étiquettes et les branches qui ont été faites et contient les modifications apportées aux fichiers à l'intérieur du src/).
Jusqu'à présent, je l'ai fait ce qui suit:
git clone MyBigProject /tmp/foo
cd /tmp/foo
# I want to share the master and 1.0, 1.1, 2.0,... branches
REMOTE_BRANCHES=`git branch -r | tr -d " " | grep "^origin/[0-9]\.[0-9]$"`
for BRANCH in $REMOTE_BRANCHES; do
# So I need to track them locally in order to rewrite them
git checkout --track $BRANCH
done
git filter-branch --tree-filter 'rm -rf `ls -1 | grep -v src`' --prune-empty -- --all
git push MySharedRepo --all
git push MySharedRepo --tags
Le problème est que filter-branch
va créer de nouveaux hash engager, poussant ainsi à la MySharedRepo
apporte beaucoup de conflits. Cela signifierait aussi qu'il va corrompre toutes les références des utilisateurs chaque fois que je vais pousser les référentiels partagés.
Je voudrais préciser que MySharedRepo
est un référentiel READ-ONLY.
J'ai cherché pendant les derniers jours sans trouver la bonne solution à ce problème, donc merci d'avance si vous pouvez m'aider à le résoudre!