2015-07-12 69 views
3

我希望在編輯後沒有實際創建提交的情況下調出提交消息的常用編輯器。它應該提出一條消息,其中填充了通常的git status信息和完整的git diff,這些信息在編輯後會再次被刪除。產生的文本將在稍後傳遞給git commit-tree組成提交消息而不實際提交

所以基本上我期待像

git commit -eF proposed-message.txt -v --cleanup=default 

不創建一個承諾,而是吐出提交信息到標準輸出或離開它供以後使用的文件。那裏有一些可以幫助我的git子命令?

+0

相關:http://stackoverflow.com/questions/26360867/does-git-allow-me-to-write-my-next-commit-message-gradually-during-developing – Jubobs

回答

1

您可以使用prepare-commit-msg hook來實現您想要的功能,方法是在某處複製提交消息文件,然後使提交失敗(退出非零狀態的掛鉤)。您可以在文件上運行編輯器來模擬git會做什麼,如果鉤子沒有失敗(只需運行$(git var GIT_EDITOR) "$1";請參閱git-var)。當然,你需要以某種方式打開和關閉這個動作 - 例如可能通過一個環境變量 - 這樣它就不會影響正常的提交。

但是,一般來說,這種技巧是一個壞主意。請參閱Jubobs' comment中的鏈接StackOverflow發佈。