Aller au contenu

Créer une branche orpheline dans GIT

En arrivant sur un petit projet, j'ai découvert que deux personnes travaillaient sur le même code, chacune dans son coin. J'ai donc eu comme première tache de fusionner le travail des deux collègues. Pour ce faire, j'ai créé un dépôt git avec le code du premier.

git init
git add .
git commit -m "Code collegue 1"

À ce moment là, le code de mon collègue se trouvait dans la branche master. J'ai ensuite créé une nouvelle branche, positionnée sur aucun commit (branche orpheline).

git checkout --orphan working

J'étais à présent dans la branche working. Mais le code de mon collègue 1 se trouvait toujours dans l'indexe. Il me fallait donc l'effacer, puis copier le code de mon collègue 2 dans le dépôt avant de faire un nouveau commit.

git reset --hard
cp -r /chemin/vers/le/code/de/collegue2 .
git add .
git commit -m "Code collegue 2"

À présent, j'étais prêt à effectuer la fusion des deux branches, et donc des travaux de mes deux collègues.

git checkout master
git merge working

Maintenant que tous les conflits de fusion sont résolus (avec l'aide de mes collègues), nous pouvons travailler tous les trois sur le projet, en veillant à fusionner régulièrement nos avancées.

git commit -m "Fusion accomplie"
git push

Les branches orphelines sont donc très utiles lorsque l'on souhaite fusionner deux travaux en un seul, et plus généralement lorsque l'on souhaite introduire une nouvelle source dans un projet. Elles peuvent aussi être utilisées pour gérer plusieurs arbres dans un même dépôt (par exemple, un arbre pour le code, et un autre pour la documentation).