0

我想创建一个自动发行说明机制。
我要做的是在每次部署之前检查我使用 git 所做的所有提交并从中生成提交日志。
我已经看过这里: http: //gitref.org/inspect/#log并找到了如下命令:

git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

问题是我不知道日期、作者或任何其他过滤。我唯一能知道的是这是一个新的doploy,所以我需要一种方法来在每次部署时存储一些索引并grep自上次索引以来的所有提交。我使用 github 作为主机。有没有办法做到这一点?

4

2 回答 2

3

您可以为此使用标签。在每个版本中,您都会创建一个标签,您可以稍后在需要更改日志时参考该标签。

于 2012-07-01T15:43:10.833 回答
3

好的 - 所以你需要一个范围,但你说你不知道“日期或作者”,但你至少应该知道提交 sha?

git log XXXX..XXXXX --format='%ad %an: %s' --no-merges --date=short

XXXX 是你的提交

或者Ikke说使用标签,每次发布到生产环境时,使用内部版本号进行标记,所以你只需要最后一个生产标签和新的生产标签

git log p-5010..p-5011 --format='%s' --date=short

.


如果有人觉得有用,请离开本节:不是答案,而是与 git log 相关

git log --format='%ad %an: %s' --before={3.weeks.ago} --after={2012-05-18} --no-merges --date=short

刚刚从我的 .gitconfig 中抓取了一些代码并将其与您拥有的内容合并

我的 .gitconfig 别名git l

[alias]
    l = log -20 --format='%h %ad %d %an: %s' --date=short

git l
# returns last 20 commits
e42c322 YYYY-MM-DD  (tag-if-exists) John Doe: commit message
849c968 YYYY-MM-DD  John Doe: commit message
...
于 2012-07-01T15:49:15.063 回答