human
Je travaille avec un autre développeur sur un projet, et nous utilisons Github comme dépôt distant. Je suis sur un Mac en utilisant git 1.7.7.3, il est sur Windows en utilisant git 1.7.6.
Voici ce qui se passe

* L'un de nous (appelons-le développeur A, mais cela n'a pas d'importance lequel) pousse un ensemble de commits sur GitHub.
* L'autre (développeur B) effectue quelques commits locaux.
* B fait un ```git pull```.
* B fait un ```git push```.
* En regardant l'historique des commits, je vois Fusionner la branche 'master' de github.com:foo/bar

L'historique des commits se remplit de messages "Fusionner la branche" au fil du temps, et montre également que le développeur B a commis des modifications que le développeur A a faites. La seule façon que nous avons trouvée pour éviter ce problème a été de faire un ```git pull --rebase``` à l'étape 3, mais je ne sais pas quels effets secondaires l'opération de rebasage va introduire. C'est la première fois que je travaille sur un dépôt git multi-développeurs, donc est-ce un comportement normal ? Des idées sur la façon de résoudre ce problème
gpt
Le commit que vous voyez est parfaitement normal. Un ```pull``` exécute effectivement ```git fetch``` puis ```git merge```, donc une fusion se produit généralement lorsque vous exécutez ```git pull```.

L'alternative d'utiliser le rebasage au lieu de la fusion est possible, mais en général, vous devriez l'éviter. Le rebasage vous permet de conserver un historique linéaire, mais supprime également toutes les informations sur les branches d'origine. Cela entraînera également la réécriture de l'historique de la branche actuelle, recréant tous les commits qui ne sont pas contenus dans la branche cible (dans votre cas, le dépôt distant). Comme les commits recréés sont différents, cela peut causer beaucoup de confusion lors du développement en collaboration avec d'autres personnes, surtout lorsque les gens ont déjà vérifié des parties de ces commits avant qu'ils ne soient réécrits (par exemple avec des branches de fonctionnalités). Donc, en règle générale, vous ne devriez jamais réécrire un commit qui a déjà été poussé.

Les commits que vous voyez servent à combiner deux (ou plus) branches. Il est tout à fait normal d'avoir un commit qui ne fait rien d'autre que fusionner plusieurs branches. En fait, cela permet de voir très clairement quand vous avez un commit de fusion qui combine des branches en regardant l'historique. En comparaison avec le rebasage, la fusion vous permet également de voir efficacement l'historique d'origine tel qu'il a été développé, y compris les branches réelles qui coexistaient.

Donc, en résumé : oui, avoir des commits de fusion est tout à fait normal et vous ne devriez pas vous en préoccuper.