it-swarm.com.de

Verwendung für Nachrichten, die Sie nach einem Monat interrompus senden möchten

Nach der Veröffentlichung des Berichts können Sie die Nachrichten für die Validierung des Semble Poser Problème verwenden. Le meilleur exemple de ceci est lorsque vous faites un git pull pour obtenir les modification de quelqu'un d'autre. Es wird empfohlen, das Band als Commit-Nachricht zu versenden:wqWeitere Informationen über die Validierung, die Nachricht an den Empfänger:

error: There was a problem with the editor 'vi'.
Not committing merge; use 'git commit' to complete the merge.

Je dois ensuite commettre manuellement :(

Comment puis-je faire en sorte que git joue bien avec vim?

47
Nat Ritmeyer

Nach ein bisschen googeln stellt sich heraus, dass die Antwort lautet:

git config --global core.editor $(which vim)
92
Nat Ritmeyer

Nat Ritmeyer hat die richtige Lösung gegeben. Ich werde dir den Grund geben.

Als Steve Tooke erklärte , versteckt Ihr ~/.vimrc Oder weist git explizit an, den vollständigen Pfad zu vim zu verwenden, um das Problem zu lösen. Er endet jedoch mit "Ich möchte immer noch an die Wurzel des Problems gehen".

Versuche dies:

  1. Starten Sie einen git commit, Um sich in einen vim Editor zu begeben.
  2. Drücken Sie <CTRL> + Z, Um den Vorgang abzubrechen und zum TTY zurückzukehren
  3. Machen Sie ein ps und beachten Sie, dass es für Ihr TTY (dessen Nummer Sie mit dem Befehl tty erhalten) etwas gibt wie ...

    $ tty
    /dev/ttys005
    
    $ ps
      PID TTY           TIME CMD
    17547 ttys005    0:00.15 -bash
    65126 ttys005    0:00.02 git commit
    65127 ttys005    0:00.10 vi .git/COMMIT_EDITMSG
    
    $ which vi
    /usr/bin/vi
    
    $ ll /usr/bin/vi
    lrwxr-xr-x  1 root  wheel  3 Oct  3 17:40 /usr/bin/vi -> vim
    
    $ jobs
    [1]+  Stopped                 git commit
    
  4. Kehren Sie mit fg %1 (Oder der angehaltenen Auftragsnummer, unter der git commit Aufgeführt ist) zu Ihrem vim-Prozess zurück.

Was uns die Shell-Ausgabe sagt, ist ...

  1. Ich habe ttys005 verwendet
  2. Auf dem TTY bash genannt git und git genannt vi
  3. Der vollständige Pfad von vi ist /usr/bin/vi
  4. Der Befehl vi ist ein Symlink zu vim
  5. Durch Aufrufen von <CTRL> + Z Wurde der Befehl git commit Gestoppt, und es war die Nummer 1 im Auftragsstapel.

Also, vi ist der gleiche Befehl wie vim?!?! Ja, aber vim merkt, dass es argv[0] War vi und läuft im kompatiblen Modus . Dies kann zu Problemen führen, je nachdem, was sich in Ihrem .vimrc Befindet.

Die beste Lösung ist, git anzuweisen, vim zu verwenden, aber ich schlage vor, dass Sie nicht annehmen dass dein vim Pfad derselbe ist wie jeder andere (vielleicht hast du ihn über brew install vim installiert)

git config --global core.editor $(which vim)
10
Bruno Bronosky

Dies kann ein Plugin oder etwas in Ihrer .vimrc-Datei sein. Sie können vim am besten in einem sicheren Modus zum Bearbeiten von Festschreibungsnachrichten laden:

git config --global core.editor '/usr/bin/vim -f -u NONE'
4
Mr Wilde

Das gleiche Problem hatte ich jedes Mal, wenn ich von Remote Repo abholte und es mit einem anderen Zweig zusammenführte. 

Dies in Terminal zu tippen, hat es für mich behoben

git config --global core.editor $(which vim)

2
Lahiru

Wenn git config --global core.editor /usr/bin/vim aus irgendeinem Grund nicht funktioniert, versuchen Sie es ohne das --global-Flag. Ich könnte es nur ohne das --global-Flag zum Laufen bringen.

0
Aakash Jog