在没有实际提交的情况下编写提交消息

时间:2015-07-12 21:13:35

标签: git commit

我想提交一个通常的编辑器来提交一条消息,而不是在编辑后实际创建一个提交。它应该提出一条消息,其中包含通常的git status信息和完整的git diff,这些信息在编辑后会再次被删除。生成的文本稍后将传递给git commit-tree

基本上我找的是像

这样的东西
git commit -eF proposed-message.txt -v --cleanup=default

不会创建提交,而是将提交消息吐出到标准输出或将其保留在文件中供以后使用。有一些git子命令可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您可以使用prepare-commit-msg hook来实现您想要的功能,方法是在某处复制提交消息文件,然后使提交失败(退出非零状态的挂钩)。你可以在文件上运行编辑器来模拟git会做什么,如果挂钩没有失败(只需运行$(git var GIT_EDITOR) "$1";请参阅git-var)。当然,您需要以某种方式打开和关闭此操作 - 例如,可能通过环境变量 - 以便它不会影响正常提交。

但作为一般规则,这种棘手是一个坏主意。请参阅Jubobs' comment中链接的StackOverflow帖子。