FAQ: [GIT] Comment extraire un sous-répertoire d'un dépôt?

Blogues

[GIT] Comment détacher un sous-répertoire et en faire un dépôt à part?

Vous voulez sortir un sous-répertoire de votre dépôt et en faire un nouveau dépôt, ne contenant que les commits qui y sont associés.

La démarche consiste à cloner le dépôt local, puis à définir les branches intéressantes. Ensuite, il faut déréférencer le dépôt distant, supprimer les tags et, l'essentiel, filtrer les branches et tags concernés par le sous-répertoire à extraire. La suite consiste à nettoyer l'historique pour éviter de stocker trop d'informations. Enfin, un suivi du nouveau dépôt distant et surtout un push pour valider le nouveau dépôt. Et vous voilà avec un dépôt ne contenant que le sous-répertoire qui vous intéresse, ramené à la racine, et les commits associés.

En code:

git clone  
cd 
for i in   ; do git branch -t $i origin/$i; done
git remote rm origin
git checkout master
git tag -l | xargs git tag -d
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter  -- --all
git reset --hard
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --aggressive --prune=now
git remote add origin git@bitbucket.org:beorndev/.git
git push -u origin 
        
00

Plus d'entrées de blog

Ajouter des commentaires
Powered by Liferay - Copyright © Beorn Technologies 2020 - Mentions légales