Je sépare un référentiel Git en utilisant l'option --subdirectory-filter de filter-branch qui fonctionne très bien, sauf qu'il ramène tout à la racine du référentiel.Filtre de sous-répertoire Git avec la structure de répertoire existante
J'ai actuellement
ABC
- DEF
- GHI
- JKL
- MNO
Et le résultat de cette commande:
git filter-branch -f --subdirectory-filter ABC/DEF --prune-empty -- --all
Génère ceci:
GHI
JKL
Où ce que je veux vraiment est la suivante:
ABC
- DEF
- GHI
- JKL
Je ne vois rien dans les documents Git qui montre une option de filtre qui préserve (ou définit) la structure du répertoire et je n'ai pas pu trouver une commande que je peux exécuter après le filtrage pour remapper la structure à la façon dont je le veux.
Est-ce possible?
parfaitement pour moi aussi. Merci de l'avoir posté. Je devrais ajouter que cette commande ne remplace pas la commande '--subdirectory-filter'; vous l'exécutez toujours. Cette commande remplace la commande 'git mv * ...' que d'autres documents recommandent. Mais sans le commit massif moche le 'git mv' aurait généré. –
Malheureusement, cela ne fonctionne pas pour moi. Je suis sur Windows exécutant git-bash, et il échoue en disant qu'il ne peut pas trouver index.new ($ GIT_INDEX_FILE.new). J'aimerais pouvoir utiliser cette solution. –
@BerinLoritsch $ GIT_INDEX_FILE est une variable d'environnement que la plupart des outils que j'ai utilisés pour vous; MsysGit et CygWin avec plusieurs git bash pour Windows alternatives. Quelle est votre configuration exacte? – JRoughan