En supposant que je sois le responsable d'un dépôt et que je veuille récupérer les modifications d'un contributeur, il y a plusieurs flux de travail possibles :
- I
cherry-pick
chaque livraison du serveur distant (dans l'ordre). Dans ce cas, git enregistre le commit comme non lié à la branche distante. - I
merge
la branche, en tirant tous les changements, et en ajoutant un nouveau commit "conflit" (si nécessaire). - I
merge
chaque commit de la branche distante individuellement (encore une fois dans l'ordre), ce qui permet d'enregistrer les conflits pour chaque commit, au lieu de les regrouper en un seul. - Pour être complet, vous pourriez faire un
rebase
(même chose quecherry-pick
), mais je crois savoir que cela peut être source de confusion pour le contributeur. Cela élimine peut-être l'option 1.
Dans les deux cas 2 et 3, git enregistre l'historique des branches des commits, contrairement au cas 1.
Quels sont les avantages et les inconvénients d'utiliser l'une ou l'autre des deux méthodes ? cherry-pick
ou merge
méthodes décrites ? Je crois savoir que la méthode 2 est la norme, mais j'ai l'impression que résoudre un gros commit avec une seule fusion "conflictuelle" n'est pas la solution la plus propre.