Entrez un message de validation pour expliquer pourquoi cette fusion est nécessaire, en particulier si elle fusionne une branche upstream mise à jour dans une branche topic

J'utilise Git. J'ai fait un tirage d'un repo distant et j'ai reçu un message d'erreur:

" veuillez entrer un message de validation pour expliquer pourquoi cette fusion est nécessaire, surtout si elle fusionne une mise à jour en amont dans un sujet direction."

J'essaie de taper un message et d'appuyer sur Enter mais rien ne se passe.

Comment puis-je dire à git/terminal que j'ai fini de taper mon message?

J'utilise terminal sur OS X.

306
demandé sur K.Dᴀᴠɪs 2013-09-30 06:57:00

7 réponses

Ce n'est pas un message D'erreur Git, c'est l'éditeur car git utilise votre éditeur par défaut.

Pour résoudre ce problème:

  1. Appuyez sur " i "
  2. écrivez votre message de fusion
  3. Appuyez sur " esc "
  4. écrire ":wq"
  5. puis appuyez sur Entrée
727
répondu Saad.elzwawy 2018-04-03 14:39:40

En fait ce n'est pas une erreur! Cela signifie que vous devez entrer un message pour marquer cette fusion. Mon système D'exploitation est Ubuntu 14.04.Si vous utilisez le même système d'exploitation, il vous suffit de le faire comme suit:

  1. Tapez un message

  2. CtrlCO

  3. Tapez le nom du fichier (par exemple "Merge_feature01") et appuyez sur Entrée

  4. CtrlX pour quitter

Maintenant, si vous allez à .git et vous trouverez le fichier "Merge_feature01", c'est le journal de fusion en fait.

30
répondu xiaohu Wang 2018-03-30 20:16:12

Tl; dr définit l'éditeur sur quelque chose de plus agréable, comme Sublime ou Atom

Ici nice est utilisé dans le sens d'un éditeur, vous comme ou trouver de plus en plus conviviale.

Le problème sous-jacent est que Git utilise par défaut un éditeur trop peu intuitif pour la plupart des gens: Vim. Maintenant, ne vous méprenez pas, j'aime Vim, et pendant que vous pourriez mettre un peu de temps de côté (comme un mois) pour apprendre Vim et essayer de comprendre pourquoi certaines personnes pensent que Vim est le plus grand éditeur dans l'existence, il existe un moyen plus rapide de résoudre ce problème: -)

le correctif n'est pas de mémoriser des commandes cryptiques, comme dans la réponse acceptée, mais de configurer Git pour utiliser un éditeur que vous aimez et comprenez! C'est vraiment aussi simple que de configurer l'une de ces options

  1. le paramètre de configuration git core.editor (par projet ou globalement)
  2. le VISUAL ou EDITOR variable d'environnement (cela fonctionne pour d'autres programmes)

Je vais couvrir le premier option pour un couple d'éditeurs populaires, mais GitHub a un excellent guide à ce sujet pour de nombreux éditeurs aussi.

Pour utiliser Atom

Straight à partir de ses documents , entrez ceci dans un terminal: git config --global core.editor "atom --wait"

Git attend normalement la fin de la commande editor, mais comme Atom se fourche immédiatement sur un processus d'arrière-plan, cela ne fonctionnera pas, sauf si vous lui donnez l'option --wait.

Pour utiliser du texte Sublime

Pour les mêmes raisons que dans le cas D'Atom, vous avez besoin d'un drapeau spécial pour signaler au processus qu'il ne devrait pas se bifurquer vers l'arrière-plan:

git config --global core.editor "subl -n -w"

12
répondu oligofren 2018-05-01 10:01:24

Juste Faire,

CTRL + X

CTRL + C

, Il vous demandera d'enregistrer le fichier, Appuyez sur Y, alors vous êtes fait.

6
répondu Mandeep Singh 2018-05-10 12:32:48

Au Lieu de cela, vous pouvez git CtrlZ et réessayez le commit mais cette fois ajoutez "- m " avec un message entre guillemets après, puis il validera sans vous inviter avec cette page.

3
répondu hgrov52 2018-03-30 20:16:42

Ici, il vous demande un message qui se connecte à votre Fusion pour référence future pourquoi vous avez fait cette fusion.

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter
2
répondu Vivek Singh 2018-05-14 08:05:12

Étant donné que votre référentiel local a peu de commits à l'avance, git essaie de fusionner votre distant dans votre repo local. Cela peut être géré via merge, mais dans votre cas, vous cherchez peut-être un rebase, c'est-à-dire ajoutez votre commit au sommet. Vous pouvez le faire avec

git rebase ou git pull --rebase

Voici un bon article expliquant la différence entre git pull & git pull --rebase.

Https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/

1
répondu Ankush Jain 2018-06-08 06:25:10