当一个提交被推送到远程 Git 仓库时

3
有没有一种方法可以显示特定提交被推送到远程仓库的时间?换句话说,我知道谁做了更改(以及何时提交),但我不知道它何时被推送到我的heroku生产环境(注意:heroku只使用git push进行部署)。
理想情况下,它应该像这样: $ git remote myprodrepo show 201421b78ae73a21bc6045a78b4b5db5c54697e7
然后我就可以看到那个提交实际上被推送到那个仓库的时间。
请注意:上面的语法不起作用,只是为了尝试展示我要完成的内容。
(如果这个问题不清楚,请提出问题。)
2个回答

1
不,Git不会记录这些操作的任何日志。
一个中间的授权层,例如Gitolite可以保留这样的记录,但可能不适合您当前的设置。
除了Heroku发布建议外,Chris建议使用纯Git的方式来获取所有这些操作(而不仅仅是推送)的最新记录,方法是在远程Git存储库的配置中建议的链接。
# required for a bare repo
git config core.logAllRefUpdates true

git reflog --date=local master

你说得对。这不会解决我的问题,但看起来是非常好的信息。谢谢你的回复。 - David S

1

VonC是正确的,Git本身不会跟踪这些信息,但在Heroku上,您可以使用heroku releases命令获取此信息。

链接页面的示例输出:

Rel   Change                          By                    When
v52   Config add AWS_S3_KEY           jim@example.com       5 minutes ago
v51   Deploy de63889                  stephan@example.com   7 minutes ago
v50   Deploy 7c35f77                  stephan@example.com   3 hours ago
v49   Rollback to v46                 joe@example.com       2010-09-12 15:32:17 -0700

请注意,v51 表示 de63889 已部署到 Heroku。
您可以使用例如 heroku releases:info v51 以获取有关此版本的详细信息:
=== Release v51
Change:      Deploy de63889
By:          jim@example.com
When:        7 minutes ago
Addons:      deployhooks:email, releases:advanced
Config:      MY_CONFIG_VAR => 42
             RACK_ENV      => production

谢谢您的回复。是的,我知道这是可行的,但是由于分支等因素,很难确定一个提交实际上已经部署到生产环境中。换句话说,在发布之前可能会有20多个提交(可能是第9个提交引入了错误)。 - David S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接