Scinder un dépôt git en deux
· 1.7 KiB · Text
原始文件
# Scinder un dépôt en deux dépôts distincts
## Nomenclature
+ OLD_REPO : nom de l'ancien dépôt à scinder
+ NEW_REPO_1 : nom du nouveau premier dépôt
+ NEW_REPO_2 : nom du nouveau second dépôt
+ OLD_REPO_DIR_1 : nom du dossier qui deviendra NEW_REPO_1
+ OLD_REPO_DIR_2 : nom du dossier qui deviendra NEW_REPO_2
+ TEMP_BRANCH_1 : nom de la branche temporaire de OLD_REPO dans laquelle on va "cloner" OLD_REPO_DIR_1
+ TEMP_BRANCH_2 : nom de la branche temporaire de OLD_REPO dans laquelle on va "cloner" OLD_REPO_DIR_2
## Préparer l'ancien dépôt
$ git clone <url/git/vers/OLD_REPO.git>
$ git subtree split --prefix OLD_REPO_DIR_1 -b TEMP_BRANCH_1
$ git subtree split --prefix OLD_REPO_DIR_2 -b TEMP_BRANCH_2
## Préparer les futurs dépôts
Sur le serveur git créer les futurs dépôts NEW_REPO_1 et NEW_REPO_2.
## Initialiser les futurs dépôts
$ mkdir <chemin/vers/NEW_REPO_1>
$ cd <chemin/vers/NEW_REPO_1>
$ git init --initial-branch=main
$ git pull <chemin/vers/OLD_REPO> TEMP_BRANCH_1
$ git remote add origin <url/git/vers/NEW_REPO_1>
$ mkdir <chemin/vers/NEW_REPO_2>
$ cd <chemin/vers/NEW_REPO_2>
$ git init --initial-branch=main
$ git pull <chemin/vers/OLD_REPO> TEMP_BRANCH_2
## Mettre à jour les dépôts git distants
$ cd <chemin/vers/NEW_REPO_1>
$ git remote add origin <url/git/vers/NEW_REPO_1>
$ git push --set-upstream origin --all
$ git push --set-upstream origin --tags
$ cd <chemin/vers/NEW_REPO_2>
$ git remote add origin <url/git/vers/NEW_REPO_2>
$ git push --set-upstream origin --all
$ git push --set-upstream origin --tags
## Nettoyer l'ancien dépôt
$ cd <chemin/vers/OLD_REPO>
$ git branch -D TEMP_BRANCH_1
$ git branch -D TEMP_BRANCH_2
| 1 | # Scinder un dépôt en deux dépôts distincts |
| 2 | |
| 3 | ## Nomenclature |
| 4 | |
| 5 | + OLD_REPO : nom de l'ancien dépôt à scinder |
| 6 | + NEW_REPO_1 : nom du nouveau premier dépôt |
| 7 | + NEW_REPO_2 : nom du nouveau second dépôt |
| 8 | + OLD_REPO_DIR_1 : nom du dossier qui deviendra NEW_REPO_1 |
| 9 | + OLD_REPO_DIR_2 : nom du dossier qui deviendra NEW_REPO_2 |
| 10 | + TEMP_BRANCH_1 : nom de la branche temporaire de OLD_REPO dans laquelle on va "cloner" OLD_REPO_DIR_1 |
| 11 | + TEMP_BRANCH_2 : nom de la branche temporaire de OLD_REPO dans laquelle on va "cloner" OLD_REPO_DIR_2 |
| 12 | |
| 13 | ## Préparer l'ancien dépôt |
| 14 | |
| 15 | $ git clone <url/git/vers/OLD_REPO.git> |
| 16 | $ git subtree split --prefix OLD_REPO_DIR_1 -b TEMP_BRANCH_1 |
| 17 | $ git subtree split --prefix OLD_REPO_DIR_2 -b TEMP_BRANCH_2 |
| 18 | |
| 19 | ## Préparer les futurs dépôts |
| 20 | |
| 21 | Sur le serveur git créer les futurs dépôts NEW_REPO_1 et NEW_REPO_2. |
| 22 | |
| 23 | ## Initialiser les futurs dépôts |
| 24 | |
| 25 | $ mkdir <chemin/vers/NEW_REPO_1> |
| 26 | $ cd <chemin/vers/NEW_REPO_1> |
| 27 | $ git init --initial-branch=main |
| 28 | $ git pull <chemin/vers/OLD_REPO> TEMP_BRANCH_1 |
| 29 | $ git remote add origin <url/git/vers/NEW_REPO_1> |
| 30 | $ mkdir <chemin/vers/NEW_REPO_2> |
| 31 | $ cd <chemin/vers/NEW_REPO_2> |
| 32 | $ git init --initial-branch=main |
| 33 | $ git pull <chemin/vers/OLD_REPO> TEMP_BRANCH_2 |
| 34 | |
| 35 | ## Mettre à jour les dépôts git distants |
| 36 | |
| 37 | $ cd <chemin/vers/NEW_REPO_1> |
| 38 | $ git remote add origin <url/git/vers/NEW_REPO_1> |
| 39 | $ git push --set-upstream origin --all |
| 40 | $ git push --set-upstream origin --tags |
| 41 | |
| 42 | $ cd <chemin/vers/NEW_REPO_2> |
| 43 | $ git remote add origin <url/git/vers/NEW_REPO_2> |
| 44 | $ git push --set-upstream origin --all |
| 45 | $ git push --set-upstream origin --tags |
| 46 | |
| 47 | ## Nettoyer l'ancien dépôt |
| 48 | |
| 49 | $ cd <chemin/vers/OLD_REPO> |
| 50 | $ git branch -D TEMP_BRANCH_1 |
| 51 | $ git branch -D TEMP_BRANCH_2 |
| 52 | |
| 53 |