Nous avons un grand dépôt qui a des sous-dossiers de platforms
,Lancer git filtre-branche sous-répertoire-filtre également supprimer débarrasser d'autres sous-répertoires histoire
sdk/
.git/
android/
ios/
unity/
windows/
Ce que nous voulons maintenant briser dans leurs propres dépôts. Garder toute l'histoire, et les branches de là.
J'ai couru la commande
git filter-branch -f --prune-empty --subdirectory-filter android -- --all
Ce qui semblait avait couru exactement ce que j'avais voulu, promouvoir le sous-dossier android
être la racine de ce nouveau dépôt, et je suis allé à pousser cette une nouvelle origine distante (sur GitHub).
Quand vous faites cela, je reçu un message d'erreur indiquant qu'il y avait un fichier trop volumineux pour être poussé à distance, mais le chemin de ce fichier était
unity/QAApp/...
qui existe dans l'histoire des autres sous-dossiers que je ne pensait pas filter-branch --subdirectory-filter
prendrait.
Je suis à la recherche dans l'exécution d'un manuel
git filter-branch -f --prune-empty --tree-filter \
'git rm -rf --ignore-unmatch ios unity windows && rm -rf ios unity windows' \
-- --all
Mais il semble que ce double-agiotage ce que je comprends filter-branch subdirectory-filter
devrait faire. Est-ce que ce comportement est attendu ou est-ce que j'exécute incorrectement l'une ou l'autre des commandes?