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.
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:
- Appuyez sur " i "
- écrivez votre message de fusion
- Appuyez sur " esc "
- écrire ":wq"
- puis appuyez sur Entrée
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:
-
Tapez un message
CtrlCO
Tapez le nom du fichier (par exemple "Merge_feature01") et appuyez sur Entrée
CtrlX pour quitter
Maintenant, si vous allez à .git et vous trouverez le fichier "Merge_feature01", c'est le journal de fusion en fait.
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
- le paramètre de configuration git
core.editor
(par projet ou globalement) - le
VISUAL
ouEDITOR
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"
Juste Faire,
CTRL + X
CTRL + C
, Il vous demandera d'enregistrer le fichier, Appuyez sur Y, alors vous êtes fait.
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.
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
É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/