github blocca il terminale mac quando si utilizza il comando pull


95

Sto imparando GitHub su Mac (riga di comando) e ogni volta che lo faccio git pull origin masterottengo questo

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

il terminale sembra bloccarsi e non mi consente di inserire nulla immediatamente, quindi quando finalmente mi consente di inserire il testo sembra che non riconosca i comandi git.

È un bug in git o mi manca qualcosa?


5
Si blocca davvero o non conosci vi?
Edward Thomson

2
Non posso dirti esattamente perché, ma git vuole che tu inserisca un messaggio di commit, e molto probabilmente sei nell'editor di testo vim.
Misch

ah capisco, sì, non ho familiarità con vim. come faccio a inserire e salvare il commento quindi contenuto?
zero

7
scrivi iper inserire un commento, quindi premi esc e digita:wq
Scott Harwell

1
Se non hai familiarità con vinon sei rinchiuso?
Ben Racicot

Risposte:


225

Sei nell'editor di testo, vim! È un editor di testo modale , quindi dovresti:

  1. Premere iper accedere alla modalità di inserimento .
  2. Ora puoi digitare il tuo messaggio, come se fossi in un normale editor di testo (non modale).
  3. Premere escper tornare alla modalità di comando .
  4. Quindi digita :wseguito da enterper salvare.
  5. Infine :qseguito da entersmettere.

4
È fantastico che git presuma che tutti conoscano vim.
user124384

2
@ user124384 Git prova a usare la tua $EDITORvariabile d'ambiente, ma torna indietro vise non riesce a trovarne una. Puoi configurare il fallback tramite git config's core.editor. Vedi git-scm.com/book/en/v2/…
ceyko

dove posso digitare i?
Val Do

1
@ val-kharitonashvili Su una tastiera di qualità, è adiacente a ue o;) Ma in realtà, finché il terminale è attivo, dovrebbe funzionare.
ceyko

Perché succede anche questo? L'ho sempre fatto git merge mastere negli ultimi 2 giorni, vedo questo ...
Miele


2

L'editor sembra essere vim secondo le tue descrizioni. Questa console ti sta semplicemente dicendo di scrivere un messaggio per il commit che vuoi fare, ed è obbligatorio come fa.

  • Basta digitare ie entrerai in -- INTER --modalità, ora puoi scrivere i tuoi commenti.

  • Dopo aver finito di scrivere, premi il esctasto sulla tastiera e passerai alla modalità di comando. ( vedi sul fondo della console )

  • Ora salva le modifiche scrivendo :wseguito dal entertasto

Scrittura del comando <code>: w </code>

  • Ora puoi uscire scrivendo :qseguito dal entertasto

Scrittura del comando <code>: q </code>

  • Evviva! Finalmente sei tornato alla console principale.


1

Esegui questo comando

git config --global core.editor "gedit"

Aggiungi il tuo messaggio in questo file e salvalo. Torna indietro, tira adesso.


0

Ho risolto questo problema eseguendo i seguenti passaggi

  1. Rimuovi # MERGE_MSG #

    rm .git/\#MERGE_MSG#

  2. Rimuovi MERGE_HEAD

    rm .git/MERGE_HEAD

Inoltre, ho impostato esplicitamente l'editor di git su un editor che ho familiarità con vim (puoi impostare nano )

`git config --global core.editor "vim"`

0

Tu puoi fare git checkout --merge yourbranch

Una fusione a tre vie tra il ramo corrente, il contenuto dell'albero di lavoro e il nuovo ramo è terminato e sarai sul nuovo ramo.


0

I problemi di solito si verificano quando si scrive male qualcosa.
È più probabile che questo comando ti interessi:

git commit -m "message"

se c'era un problema, potrebbe dire qualcosa di simile

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

e usa:

git pull

che dovrebbe portare a:

Already up-to-date.

Quindi è bene controllare:

git status

e prova a spingere di nuovo:

git push
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.