【问题标题】:Is there a way to find the important commits in GIT before a release?有没有办法在发布之前找到 GIT 中的重要提交?
【发布时间】:2018-02-03 10:14:12
【问题描述】:

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

【问题讨论】:

  • 在此过程中,您可以使用稍后可以搜索的内容标记那些重要的提交。

标签: github gitlab git-commit git-diff


【解决方案1】:

由于 Git 不知道哪些提交对您重要,因此您必须首先定义自己的一套关于如何编写提交消息的准则/格式,然后您可以使用这些准则/格式稍后可以轻松区分为特定开发阶段所做的所有提交。

例如:

  • 如果是错误修复,请在提交消息前添加“[错误修复]
  • 如果是新功能,请在提交消息前添加“[feature]
  • 如果是项目设置更改,请在提交消息前添加“[migration]

然后,一旦所有分支都合并到主分支(假设它是 develop),检查 develop 分支并使用git log --grep=<PATTERN> 识别特定的一组提交。

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

git log --grep="bugfix"

这将显示提交消息中带有“bugfix”的所有提交。

如果您只需要特定时期的提交,您可以使用--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

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

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

commit.template

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

subject line

what happened

[ticket: X]

【讨论】:

    猜你喜欢
    • 2013-08-28
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2022-08-04
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多