J'essaie de déplacer un fichier unique (appelez-le foo.txt) d'un dépôt vers un autre (non apparenté), en préservant son historique. ebneter's question montre comment faire cela pour un sous-répertoire. taw's question a quelques conseils et suggestions, mais pas une procédure étape par étape à suivre. jkeating's question semblait prometteur, mais n'a pas fonctionné pour moi. Les recherches Google sont apparues vides pour ce cas d'utilisation particulier. Ce que je cherche est une séquence claire de commandes pour accomplir ceci.Comment déplacer un fichier d'un dépôt git à un autre tout en préservant l'historique
La séquence de commandes que j'ai commencé à suivre était la suivante:
$ git clone source-repo/ source-repo-copy
$ cd source-repo-copy
$ git filter-branch --tree-filter 'test ! "[email protected]" = "foo.txt" && \
git rm --cached --ignore-unmatch [email protected] || true' --prune-empty
La logique de ma commande de filtre est de git rm
tous les fichiers qui ne sont pas toto.txt. J'ai ajouté le || true
à la commande pour le forcer à avoir une valeur de retour nulle pour satisfaire la branche de filtre. Mon intention était de placer source-repo-copie comme une télécommande pour mon référentiel cible (repo cible), et en supposant git filter-branch
filtré tout sauf foo.txt, chercher et fusionner source-repo-copie dans la cible-repo . Malheureusement, la commande git filter-branch
semblait n'avoir aucun effet. Il a fonctionné sans erreurs et a semblé broyer à travers les 600 + commits dans le repo source, mais quand il a fini, le git log
et les fichiers dans la copie de source-repo ont semblé identiques. Est-ce que tous les fichiers, sauf foo.txt, ne doivent pas tous être manquants et tous les validations qui n'ont pas été touchées doivent être retirés du journal?
À ce stade, je ne sais pas comment procéder. Aucune suggestion?
Copie possible de [Comment déplacer des fichiers d'un dépôt git à un autre (pas un clone), en préservant l'historique] (http://stackoverflow.com/questions/1365541/how-to-move-files-from-one -git-repo-to-another-not-a-clone-preserving-history) – tripleee