有没有办法在发布之前在GIT中找到重要的提交?

时间:2017-08-25 11:13:11

标签: github gitlab git-commit git-diff

因为不仅主要的变化可能是已安装的依赖项,而且所有的变更都在发布之前没有逐一检查?

1 个答案:

答案 0 :(得分:0)

由于Git不知道哪些提交对您来说非常重要,因此您必须首先定义自己的一套指南/格式,说明如何编写提交消息,然后,您可以稍后使用它来轻松区分特定开发期间的所有提交。

例如:

  • 如果修复了错误,请在提交消息前添加" [错误修正] "
  • 如果它是新功能,请在提交消息前添加" [功能] "
  • 如果项目设置发生变化,请在提交消息前加上" [migration] "

然后,一旦所有分支合并到主分支(让我们说它开发),请检查开发分支,使用git log --grep=<PATTERN>来标识一组特定的提交。

例如,如果您只需要修复错误提交,请执行以下操作:

  

git log --grep="bugfix"

将显示所有提交的内容&#34; 错误修正&#34;在提交消息中。

如果您只需要特定时间段的提交,则可以使用--since=<date>选项:

  

git log --since="2017-06-01" --grep="bugfix"

如果你想要一个格式化的列表(你可以轻松输出某些发行说明,我猜),你可以使用--format=<format>选项:

  

git log --since="2017-06-01" --grep="bugfix" --format="(%ci) %h : %s"

上面的命令将为您提供以下内容:

(2017-06-18 18:26:36 +0800) 63f330f : [bugfix] prevent crash when dialog is sent to background
(2017-07-01 10:03:40 +0800) cdcbd91 : [bugfix] remove extra row at the end of the list

您可以从完整的other format options查看git log docs

基本上,它将取决于您的提交消息格式 作为提示,您可以考虑使用commit.template来更轻松地格式化提交消息。

  

commit.template

     

如果将其设置为系统上文件的路径,   提交时,Git将使用该文件作为默认消息。对于   例如,假设您在~/.gitmessage.txt创建了一个模板文件   看起来像这样:

     

subject line

     

what happened

     

[ticket: X]