Py学习  »  Git

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

Mei Zhang • 4 年前 • 974 次点击  

有没有办法使用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 "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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49210
 
974 次点击  
文章 [ 4 ]  |  最新文章 4 年前
Noufal Ibrahim
Reply   •   1 楼
Noufal Ibrahim    5 年前

我的建议是剪一根带有“描述”的树枝。 git checkout -b "mz-client-side-validation" . 记住开始此分支的提交(使用标记,例如 mz-csv 如果你需要的话)然后开始你的工作一开始,如果你不专注于你工作的性质,这并不重要你应该养成的习惯是做一些小的承诺(即使是坏消息)因此,虽然提交并不总是与客户端验证相关,但它们足够小,在历史中非常有用。

一旦你完成了你的实际功能的实现(也许是通过多次提交),执行 git rebase -i mz-csv . 现在你可以清理工作的历史 mz-client-side-validation . 切断提交,合并它们,删除它们等等,当你准备好了,合并 mz客户端验证 回到主分支。

Tim Biegeleisen
Reply   •   2 楼
Tim Biegeleisen    5 年前

老实说,如果你很难记住你在当前提交中所做的事情,我可能会质疑你在提交之前是否会处于一个良好的状态——检查所有代码也许你应该投资于像吉拉这样的问题追踪者。

这就是说,你在这里可能会发现一个有用的诀窍,就是从一个虚拟提交开始,在这里你只需要在某个地方做一个小的更改通过以下方式添加您想要的“未来”提交消息:

git commit -m 'Implement client-side validation'

然后,做你的工作,完成承诺当你要做这项工作时,你可以 修正 上一次提交:

git commit --amend

默认情况下,这将打开一个编辑器窗口,在该窗口中,您将看到未来的提交消息。

jspcal
Reply   •   3 楼
jspcal    5 年前

也许用 git commit -F <file> 从文件中读取评论?

jamesdlin
Reply   •   4 楼
jamesdlin    5 年前

我个人会做什么 Tim Biegeleisen 建议,但如果您愿意使用自定义命令而不是 git commit .

也就是说,你可以定制 git-next-commit 剧本,放进去 PATH ,并让它将所需的提交消息写入git repo根目录中的某个文件(或者 .git/ ).

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

你也可以得到 git prepare-commit-msg hook 如果它看到一条特殊的“from next commit”消息,则执行所需的操作。