2014-10-20 58 views
7

我在vim中遇到的最大瓶頸是我需要編寫提交的時刻。通常,我不記得差異。首先我寫「git diff」。然後我寫下「git commit」,但是......「嘿,我不記得......」。因此,我需要停止寫入提交消息,然後我回來並運行差異消息。有時我用兩個窗口工作:在左邊我運行「git diff」。在右側我運行「git commit」。這允許我寫完整的提交消息,同時我可以觀察每個文件的差異,...等等。當我編輯它(使用Vim)時,如何使提交消息中出現提交差異?

有人可以幫助我改進vim工作流程中的這一刻嗎?

+3

'git的承諾-v'看DIFF在vim而commiting – FDinoff 2014-10-20 00:54:52

+0

非常感謝您 – sensorario 2014-10-20 01:13:40

+1

@FDinoff,你應該張貼您的評論作爲一個答案,這樣OP可以接受它。 – sevko 2014-10-20 01:24:43

回答

12

使用git commit -v在提交時看到vim中的差異。

-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這是我總是使用的。我希望有一種方法,使其默認行爲 – mvp 2014-10-20 01:36:33

+0

@ mvp目前似乎沒有離開http://stackoverflow.com/questions/5875275/git-commit-v-by-default – FDinoff 2014-10-20 01:39:16

1

您可以使用git commit -p在提交之前查看所有更改。見man git commit

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

編輯:見@ Fdinoff的在你的問題的一個更好的辦法。

+0

我會感謝你們倆。另外-p是一個非常有趣的選項! – sensorario 2014-10-20 01:13:08

2

附帶Vim有一個:DiffGitCached命令,打開在分割臨時緩衝區的差異的ftplugin/gitcommit.vim。我分配了一個快速映射到它(在~/.vim/after/ftplugin/gitcommit.vim):

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

對於使用fugitive使用:Gcommit -v:Gstatus窗口中使用cvc測繪的。

更多信息請參閱以下內容:

:h :Gcommit 
:h :Gstatus 
相關問題