web-dev-qa-db-fra.com

Pourquoi git m'invite-t-il à envoyer un message de validation de fusion post-extraction?

Récemment, après n'importe quel git pull, git a commencé à créer mon éditeur de texte et à demander un message de fusion. Un message de validation est déjà pré-rempli et il ne me reste plus qu'à enregistrer et à fermer la fenêtre pour terminer le tirage.

Dans le passé, la fusion était effectuée silencieusement, avec un message de validation standard (du type Merge branch 'dev' of remote.com:/repo into dev).

J'ai récemment mis à jour git vers la version 1.7.11.3 (via homebrew), mais je ne peux penser à rien d'autre que j'aurais pu faire pour changer ce comportement. S'agit-il d'un paramètre ou existe-t-il un moyen de revenir à la situation antérieure?

134
shanebonham

Dans git 1.7.10, les développeurs de git ont décidé que les commits de fusion pourraient être faits trop facilement. Comme expliqué dans cet article de blog, , le fait de forcer le comportement du message de validation interactif devrait les rendre plus détaillés et pourrait réduire la fréquence globale des fusions inutiles.

Vous pouvez utiliser le --no-edit drapeau pour éviter ce comportement, mais non. Les commits de fusion, comme tout engagement dans l’histoire, doivent être bien construits. Votre histoire ne devrait être que utile.

148
Christopher

Pour créer un raccourci pour une utilisation future, soit: -

Editez votre ~/.gitconfig avec ce qui suit:

[core]
    mergeoptions = --no-edit

Ou exécutez ce qui suit dans Terminal

git config --global core.mergeoptions --no-edit

53
Dallas Clark

D'abord, tenez compte des avertissements dans la réponse de Christopher ci-dessus.

Ensuite, si vous souhaitez toujours désactiver la modification automatique du message de validation de la fusion, définissez cette variable d'environnement:

    GIT_MERGE_AUTOEDIT=no

Cette variable d’environnement et son paramètre "no" sont documentés dans la page fusion de git doc. Il est recommandé de ne l'utiliser que dans les scripts nécessitant une fusion non interactive, mais vous pouvez bien entendu le définir dans le cadre de votre environnement Shell pour rendre ses effets plus permanents.

9
emackey