web-dev-qa-db-fra.com

git: Pourquoi "fusionner la branche 'maître' de ..."? quand tirer et pousser

Je suis toujours git newbie. J'ai modifié certains fichiers source et commis. Ensuite, j'ai fait git Push. Mais j'ai cette erreur.

To /foo/bar/  ! [rejected]        master -> master (non-fast-forward)
error: failed to Push some refs to '/foo/bar/' To prevent you from
losing history, non-fast-forward updates were rejected Merge the
remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git Push --help' for details.

Ce rejet semble que je n'ai pas git pull avant Push. Donc, j'ai git pull. D'accord, il y avait deux fichiers modifiés par d'autres.

Ensuite, j'ai pu git Push avec succès.

Question: Dans ce cas, je vois un autre journal comme suit avec mon message de validation d'origine:

commit 59e04ce13b8afa...
Merge: 64240ba 76008a5
Author: Jone Doe <[email protected]>
Date:   Fri Mar 15 11:08:55 2013 -0700

    Merge branch 'master' of /foo/bar/

Et ceci est mon message de validation original.

commit 64240bafb07705c...
Author: Jone Doe <[email protected]>
Date:   Fri Mar 15 11:06:18 2013 -0700

    Fixed bugs and updated!

J'aimerais comprendre pourquoi "fusionner le maître de localisation de la succursale" est ajouté.

23
Nullptr

Lorsque vous avez effectué un git-pull, les modifications de la branche distante ont été fusionnées dans votre branche locale. La validation générée automatiquement signifie cela.

La fusion aurait pu entraîner des conflits, qui devraient ensuite être résolus manuellement. Dans votre cas particulier, cela ne s'est pas produit et git pourrait s'occuper de tout.

17
r.v

S'il peut y avoir des modifications par d'autres personnes, il peut être judicieux d'effectuer un git pull --rebase (c'est-à-dire, ajoutez vos nouvelles modifications après les modifications distantes; cela pourrait créer des conflits que vous auriez à résoudre), puis git Push le résultat. . Attention, cela crée de nouveaux commits qui n'existaient jamais auparavant (comme toute réécriture d'historique), mais cela donne un historique net et linéaire (pas d'enchevêtrement de fusion).

7
vonbrand

J'ai le même problème sauf que je ne vois pas mon message de commit et que le Merge branch 'master' of ...

J'ai vu que je pouvais changer le message de commit pour avoir mon propre message en faisant git commit --amend, cela montre bien mon message d'origine dans mon éditeur et ensuite imprimer immédiatement Merge branch 'master' of ... dans mon terminal. 

0
cglacet