我想提交一个通常的编辑器来提交一条消息,而不是在编辑后实际创建一个提交。它应该提出一条消息,其中包含通常的git status
信息和完整的git diff
,这些信息在编辑后会再次被删除。生成的文本稍后将传递给git commit-tree
。
基本上我找的是像
这样的东西git commit -eF proposed-message.txt -v --cleanup=default
不会创建提交,而是将提交消息吐出到标准输出或将其保留在文件中供以后使用。有一些git子命令可以帮助我吗?
答案 0 :(得分:1)
您可以使用prepare-commit-msg hook来实现您想要的功能,方法是在某处复制提交消息文件,然后使提交失败(退出非零状态的挂钩)。你可以在文件上运行编辑器来模拟git会做什么,如果挂钩没有失败(只需运行$(git var GIT_EDITOR) "$1"
;请参阅git-var)。当然,您需要以某种方式打开和关闭此操作 - 例如,可能通过环境变量 - 以便它不会影响正常提交。
但作为一般规则,这种棘手是一个坏主意。请参阅Jubobs' comment中链接的StackOverflow帖子。