2014-10-20 9 views
7

Mein größter Engpass in Vim ist der Moment, in dem ich ein Commit schreiben muss. Oft erinnere ich mich nicht an das diff. Zuerst schreibe ich "git diff". Dann schreibe ich "git commit", aber ... "Hey! Ich kann mich nicht erinnern ...". Daher muss ich aufhören, eine Commit-Nachricht zu schreiben, dann komme ich zurück und führe eine diff-Nachricht aus. Manchmal arbeite ich mit zwei Fenstern: links laufe ich "git diff". Auf der rechten Seite starte ich "git commit". Dies erlaubt mir, eine Commit-Nachricht komplett zu schreiben, während ich den Unterschied jeder Datei beobachten kann, ... und so weiter.Wie mache ich Commit-Unterschiede in der Commit-Nachricht, während ich sie bearbeite (mit Vim)?

Kann mir jemand helfen, diesen Moment im vim workflow zu verbessern?

+3

'git commit -V' das Diff in vim zu sehen, während commiting – FDinoff

+0

Vielen Dank – sensorario

+1

@FDinoff, sollten Sie Ihren Kommentar als Antwort veröffentlichen, so dass das OP kann es akzeptieren. – sevko

Antwort

12

Verwenden Sie git commit -v, um das diff in vim während der Festschreibung zu sehen.

-v, --verbose 
    Show unified diff between the HEAD commit and what would be 
    committed at the bottom of the commit message template. Note 
    that this diff output doesn't have its lines prefixed with #. 
+1

+1 Dies ist, was ich immer benutze. Ich wünschte, es wäre ein Weg, um es Standardverhalten zu machen – mvp

+0

@mvp Es scheint derzeit nicht weg zu sein http://stackoverflow.com/questions/5875275/git-commit-v-by-default – FDinoff

1

Sie könnten git commit -p verwenden, um alle Änderungen zu sehen, bevor Sie sie festschreiben. Siehe man git commit

-p, --patch 
    Use the interactive patch selection interface to chose which changes to commit. 
    See git-add(1) for details. 

Edit: Siehe @ Fdinoff Kommentar zu Ihrer Frage nach einem besseren Weg.

+0

Ich werde Ihnen beiden danken. Auch -p ist eine sehr interessante Option !!! – sensorario

2

Die ftplugin/gitcommit.vim die Schiffe mit Vim einen :DiffGitCached Befehl hat, der das diff in einem Split-scratch Puffer öffnet.

nnoremap <LocalLeader><LocalLeader> :DiffGitCached<CR> 
0

Für diejenigen fugitive Verwendung :Gcommit -v oder cvc Mapping im :Gstatus Fenster verwenden mit: Ich habe eine schnelle Zuordnung zu ihm (in ~/.vim/after/ftplugin/gitcommit.vim) zugeordnet.

Im Folgenden finden Sie weitere Informationen:

:h :Gcommit 
:h :Gstatus 
Verwandte Themen