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.
-
Ouvrez TerminalTerminalGit Bash.
-
Remplacez le répertoire de travail actuel par l’emplacement où vous souhaitez créer votre dépôt.
-
Clonez le dépôt qui contient le sous-dossier.
git clone https://HOSTNAME/USERNAME/REPOSITORY-NAME
-
Remplacez le répertoire de travail actuel par votre dépôt cloné.
cd REPOSITORY-NAME
-
Pour filtrer le sous-dossier par rapport au reste des fichiers du référentiel, installez
git-filter-repo
, puis exécutezgit 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
-
Créez un dépôt sur GitHub Enterprise Server.
-
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.
Conseil : Pour plus d’informations sur la différence entre les URL HTTPS et SSH, consultez « À propos des référentiels distants ».
-
Ajoutez un nouveau nom distant avec l’URL que vous avez copiée pour votre dépôt. Par exemple,
origin
ouupstream
sont deux choix courants.git remote add origin https://HOSTNAME/USERNAME/REPOSITORY-NAME.git
-
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://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (fetch) > origin https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (push)
-
Poussez vos modifications vers le nouveau dépôt sur GitHub Enterprise Server.
git push -u origin BRANCH-NAME