git - 为将来的 git commit 设置提交消息

标签 git

有没有办法使用 git 为下一次提交设置评论?想象一下这样的事情:

git next-commit "Implement client-side validation"

# implement the feature ...

# commit changes
# equivalent to git commit -m "Implement client-side validation"
git commit -m from-next-commit

这背后的动机是,我在编程时经常想到一个特定的功能,但在这个过程中我最终开发了一些其他功能或修复了相关的东西,我忘记了我正在处理的主要任务.

那时我已经用有用的更改修改了源代码,但我什至不记得我添加的主要功能是什么,因为它只是一堆更改,我能想到的唯一提交消息是 git commit -m “更新内容”。为下一次提交设置消息也可以帮助我继续做我应该做的事情。在任何时候,如果我觉得我已经忘记了主要任务并且偏离了其他功能,我会理想地向 git 询问类似 git next-commit 的东西,它可以打印 Implement client-侧面验证

是否存在这样的功能?

编辑:在看到一些答案后,我想我应该澄清另一件事。理想情况下,此命令还可以帮助您跟踪已使用 future 提交的时间。例如,如果您使用 git commit -m from next-commit 两次而没有设置新的 future 提交消息,它应该会失败。

$ git next-commit "Implement client-side validation"
ok
$ git commit -m from-next-commit
ok
# git commit -m from-next-commit
error : already used
$ git next-commit "Optimize get_request"
ok
$ git commit -m from-next-commit
ok

最佳答案

我个人会做什么Tim Biegeleisen建议,但如果您愿意使用自定义命令而不是 git commit,那么做您想做的事情并不是很难。

也就是说,你可以制作一个自定义的 git-next-commit 脚本,将它放在 PATH 中,然后让它将你想要的提交消息写入目录中的某个文件你的 git 仓库的根目录(或者可能在 .git/ 中)。

然后制作另一个自定义脚本(例如 git-commit-from-next,或者只是重用 git-next-commit,可能带有命令行选项)使用先前存储的消息调用 git commit 并删除文件。如果该文件不存在,则打印相应的错误消息。

您还可以获取 git prepare-commit-msg hook如果它看到特殊的“from-next-commit”消息,则执行您想要的操作。

关于git - 为将来的 git commit 设置提交消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54741396/

相关文章:

windows - Windows 资源管理器中的 .gitignore 空白

git - 如何维护两个或多个永不 merge 的发散分支?

linux - 不能硬链接(hard link) gitconfig 文件

git - 存储库不干净

git - 忽略特定存储库的全局 gitignore 规则

windows - Git 要求输入密码才能推送 WSL 2 (Ubuntu),而不是 Windows。这是为什么?

git - 识别标签属于git中的哪个分支

git - 仅还原特定分支的提交,同时保留 "merged data"

git - 发生冲突时如何强制 merge 成功?

git - 多个 Vagrant 盒的最佳实践