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

Mei*_*ang 6 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
Run Code Online (Sandbox Code Playgroud)

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

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

是否存在这样的功能?

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

$ 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
Run Code Online (Sandbox Code Playgroud)

jam*_*lin 2

就我个人而言,我会按照Tim Biegeleisen 的建议去做,但是如果您愿意使用自定义命令而不是git commit.

也就是说,您可以创建一个自定义git-next-commit脚本,将其放入 中PATH,并让它将所需的提交消息写入 git 存储库根目录中的某个文件(或者可能在 中.git/)。

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

如果它看到特殊的“from-next-commit”消息,您还可以让gitprepare-commit-msg 挂钩执行您想要的操作。