Fusion de dépôts avec Git
En travaillant sur un projet avec différents membres d’équipe avec des référentiels séparés pour chaque équipe, à un certain moment, nous nous retrouvons dans une situation où nous voulons combiner ces référentiels séparés dans un référentiel maître pour déployer tout le travail à l’aide d’un référentiel unique.
Lutter pour fusionner divers référentiels en un seul, même préserver son précieux historique de validation semble difficile, mais ce n’est pas le cas. Dans cet article, nous expliquerons étape par étape comment fusionner des référentiels distincts en un seul référentiel maître.
Étapes pour fusionner des référentiels dans Git
Supposons que nous ayons trois dépôts : repo A
et repo B
, puis nous avons un repo Z
, où nous voulons fusionner A
et B
. Supposons encore une chose que nous sommes actuellement dans le répertoire de repo Z
, où nous voulons fusionner ces deux dépôts, A
et B
, en un seul qui est Z
.
Supposons encore une chose ; repo Z
est la branche principale du référentiel.
- Ajouter des URL distantes
Dans cette étape, nous allons lancer la commande git remote add
avec l’attribut -f
; cela ajoutera une télécommande pour repo A
, nous le nommerons repo A
.
```bash
git remote add -f remote-A <repo-A-URL>
```
Avec l’option -f
, la commande git fetch <name>
est exécutée immédiatement après la mise en place des informations distantes.
Nous suivrons la même procédure décrite ci-dessus pour le repo B
.
```bash
git remote add -f remote-B <repo-B-URL>
```
- Combinez des fichiers et des dossiers
Nous allons maintenant fusionner les fichiers repo A
dans la branche actuelle (repo Z
) à l’aide de la commande suivante.
```bash
git merge remote-A/master --allow-unrelated-histories
```
Ici, nous allons ajouter --allow-unrelated-histories
afin que Git autorise la fusion d’historiques non liés.
Encore une fois, le même processus sera répété pour repo B
en utilisant la commande suivante.
```bash
git merge remote-B/master --allow-unrelated-histories
```
Si des conflits surviennent après l’exécution de la commande ci-dessus, nous les résoudrons, puis validerons la fusion avec succès.
- Afficher l’historique des commits
Nous allons exécuter la commande suivante git log
pour afficher l’historique de validation fusionné, ce qui serait notre dernière étape pour afficher tout l’historique de fusion des différents référentiels.
```bash
git log
```
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn