Veuillez saisir un message de validation pour expliquer pourquoi cette fusion est nécessaire, surtout si elle fusionne une mise à jour en amont dans une branche de rubrique

515

J'utilise Git. J'ai fait un pull à partir d'un dépôt à distance 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 une branche de rubrique.

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

Comment dire à Git / Terminal que j'ai fini de taper mon message?

J'utilise Terminal sous OS X.

bernie2436
la source
3
Il semble que votre GIT est configuré pour ouvrir un modèle préconfiguré et que ce modèle est ouvert via l'éditeur par défaut (vi / vim).
Shunya
Annulez cette fusion et essayez d'utiliser git pull --rebase.
Ankush Jain
3
Form me "Shift ZZ" résout le problème
papacico

Réponses:

1192

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

Pour résoudre ceci:

  1. appuyez sur "i" (i pour insérer)
  2. rédigez votre message de fusion
  3. appuyez sur "esc" (échapper)
  4. écrire ": wq" (écrire et quitter)
  5. puis appuyez sur enter
Saad.elzwawy
la source
7
D'accord, mais cela suppose que son éditeur est viou vim.
Gabriele Petronella
106
c'est vraiment compliqué
Connor Leech
92
Seigneur je détesteVi
Sobiaholic
153
Si cela aide quelqu'un, la façon dont vous vous en souvenez est que "i" est pour "insérer", "esc" est la sortie de l'insertion et ": wq" est juste "écrire" et "quitter".
Josh Beam
83
Cela pourrait aussi bien être ↑↑ ↓↓ ← → ← → BA
Wesley Smith
39

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

  1. Tapez un message

  2. CtrlCO

  3. Tapez le nom du fichier (tel que "Merge_feature01") et appuyez sur Enter

  4. CtrlX pour quitter

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

xiaohu Wang
la source
6
Je me demande comment quelqu'un pourrait savoir cela? C'est tellement étrange comment cela fonctionne. Merci d'avoir répondu à cela.
Adrian Carr
@ScottyBlades pourquoi diable devrait-il? la question est étiquetée osx, et cette réponse concerne la façon dont Ubuntu configure une configuration entièrement différente pour Git (en utilisant nanoou pico), qui n'est pas applicable à la configuration OS X. Il n'est en aucun cas généralisable et ne donne pas non plus un aperçu de son fonctionnement, d'où le commentaire laissé par @AdrianCarr. Il y a maintenant de bien meilleures réponses.
oligofren
27

tl; dr Définissez l'éditeur sur quelque chose de plus agréable, comme Sublime ou Atom

Ici, nice est utilisé dans le sens d'un éditeur que vous aimez ou trouvez plus convivial .

Le problème sous-jacent est que Git utilise par défaut un éditeur trop intuitif pour la plupart des gens: Vim. Maintenant, ne vous méprenez pas, j'aime Vim, et même si vous pouvez réserver du temps (comme un mois) pour apprendre Vim et essayer de comprendre pourquoi certaines personnes pensent que Vim est le meilleur éditeur existant, 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 aussi simple que de configurer l'une de ces options

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

Je couvrirai la première option pour quelques éditeurs populaires, mais GitHub a un excellent guide à ce sujet pour de nombreux éditeurs .

Pour utiliser Atom

Directement depuis ses documents , entrez ceci dans un terminal: git config --global core.editor "atom --wait"

Git attend normalement la fin de la commande de l'éditeur, mais puisque Atom passe immédiatement à un processus d'arrière-plan, cela ne fonctionnera pas, sauf si vous lui donnez l' --waitoption.

Pour utiliser Sublime Text

Pour les mêmes raisons que dans le cas Atom, vous avez besoin d'un indicateur spécial pour signaler au processus qu'il ne doit pas déboucher en arrière-plan:

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

oligofren
la source
Vim ne prend pas un mois. cela prend deux jours et vous n'oublierez jamais tant que vous gardez une feuille de triche pratique dont vous aurez besoin de temps en temps, au début.
user264431
22

Faites,

CTRL + X

CTRL + C

Il vous demandera d'enregistrer le fichier, appuyez sur Y, puis vous avez terminé.

Mandeep Singh
la source
C'est si votre éditeur par défaut est "pico" ou "nano" Les commentaires ci-dessus doivent être utilisés si votre éditeur par défaut est vim.
JacKeown
7

Voici son vous demandant un message qui se connecte à votre fusion pour référence future pourquoi vous avez effectué 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
Vivek Singh
la source
6

Au lieu de cela, vous pouvez git CtrlZet réessayer la validation, mais cette fois ajoutez "-m" avec un message entre guillemets après, puis il sera validé sans vous demander cette page.

hgrov52
la source
3
lol cela résoudrait certainement le problème du PO. git commit -m 'I did blah'
James M. Lay
J'ai la version 1.7.11.4 de git sur un terminal linux, et malgré le fait que je donne git commit -m "message" ou git commit --message "message", l'éditeur apparaît de temps en temps, demandant un message. Est-ce que quelqu'un sait pourquoi le commutateur "-m" est ignoré?
pglpm
4

Étant donné que votre référentiel local a peu de validations à venir, git essaie de fusionner votre télécommande avec votre référentiel local. Cela peut être géré via la fusion, mais dans votre cas, vous recherchez peut-être un rebase, c'est-à-dire ajoutez votre commit en haut. 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/

Ankush Jain
la source
0

Comment ajouter un message dans le terminal studio Android avec votre fusion.C'est pour les utilisateurs de mac.

  • Première étape - Appuyez sur "i"
  • Deuxième étape - Entrez votre message après "#"
  • Étape trois - Appuyez sur "esc"
  • Étape quatre - tout en bas, écrivez ": wq"
  • Étape cinq - Appuyez sur "Entrée"

Vous avez tous terminé votre fusion, puis vous pouvez continuer à travailler sur l'extraction vers votre section locale ou créer une nouvelle branche.

NelsonRoberts
la source
0

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

Pour résoudre ceci:

  1. appuyez sur "i"
  2. rédigez votre message de fusion
  3. appuyez sur "esc"
  4. écrire «: wq»
  5. et appuyez sur Entrée

Explication

La façon dont vous vous en souvenez est que «i» est pour «insérer», «esc» est la sortie de l'insertion et «: wq» est simplement «écrire» et «quitter».

Vipin Kumar Shakya
la source
0

ce n'est pas une erreur. vous devez ajouter une massege pour cette fusion

pour résoudre cela:

  1. appuyez sur "i" pour insérer votre massege
  2. écrivez votre massege
  3. appuyez sur "esc"
  4. écrire ": wq" (écrire et quitter pour sauvegarder la massege et quitter)
  5. appuyez sur Entrée"
ehsan asarzadeh
la source
-1

J'ai trouvé l'erreur parce que j'étais nouveau sur git, vous devez vérifier si vous avez entré la syntaxe correcte

j'ai fait une erreur et j'ai écrit git commit

et a obtenu la même erreur

utilisation git commit -m 'some comment'

et vous ne verrez pas la page avec

AyushPayasi
la source