Skip to main content

Fractionnement d’un sous-dossier en un nouveau dépôt

Vous pouvez convertir un dossier d’un dépôt Git en tout nouveau dépôt.

Platform navigation

Remarque : vous avez besoin de Git version 2.22.0 ou ultérieure pour suivre ces instructions ; sinon, git filter-repo ne fonctionnera pas.

Si vous créez un clone du dépôt, vous ne perdez pas vos modifications ni historique Git quand vous fractionnez un dossier en un dépôt distinct. Toutefois, notez que le nouveau dépôt n’aura pas les branches et les étiquettes du dépôt d’origine.

  1. Ouvrez TerminalTerminalGit Bash.

  2. Remplacez le répertoire de travail actuel par l’emplacement où vous souhaitez créer votre dépôt.

  3. Clonez le dépôt qui contient le sous-dossier.

    git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  4. Remplacez le répertoire de travail actuel par votre dépôt cloné.

    cd REPOSITORY-NAME
    
  5. Pour filtrer le sous-dossier par rapport au reste des fichiers du référentiel, installez git-filter-repo, puis exécutez git filter-repo avec les arguments suivants.

    • FOLDER-NAME : dossier dans votre projet dans lequel vous souhaitez créer un dépôt distinct.

    Conseil : Les utilisateurs Windows doivent utiliser / pour délimiter les dossiers.

    $ git filter-repo --path FOLDER-NAME/
    # Filter the specified branch in your directory and remove empty commits
    

    Le dépôt ne doit maintenant contenir que les fichiers qui se trouvaient dans vos sous-dossiers.

    Si vous souhaitez qu'un sous-dossier spécifique soit le nouveau dossier racine du nouveau dépôt, vous pouvez utiliser la commande suivante :

    $ git filter-repo --subdirectory-filter FOLDER-NAME
    # Filter the specific branch by using a single sub-directory as the root for the new repository
    
  6. Créez un dépôt sur GitHub.

  7. En haut de votre nouveau dépôt dans la page Configuration rapide de GitHub, cliquez sur pour copier l’URL du dépôt distant.

    Capture d’écran de l’en-tête « Configuration rapide » dans un dépôt. À côté de l’URL distante, une icône de deux carrés qui se chevauchent est mise en évidence avec un encadré orange.

    Conseil : Pour plus d’informations sur la différence entre les URL HTTPS et SSH, consultez « À propos des référentiels distants ».

  8. Ajoutez un nouveau nom distant avec l’URL que vous avez copiée pour votre dépôt. Par exemple, origin ou upstream sont deux choix courants.

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. Vérifiez que l’URL distante a été ajoutée avec votre nouveau nom de dépôt.

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
    
  10. Poussez vos modifications vers le nouveau dépôt sur GitHub.

    git push -u origin BRANCH-NAME