0

我有一个使用 git 的项目。我可以通过 ssh 访问网络服务器,并且可以执行命令:

git log --decorate

它将为我提供有关该服务器上当前部署的内容的信息。但如果有人没有这样的访问权限,他们应该总是让我检查。

我正在考虑解决方案,该解决方案将git log --decorate在每次git pull或当我签出任何标签时生成带有 dump of 或任何其他命令的文件。每个人都可以通过 url 访问{website}/current-version.html

我想我应该使用 git hooks 还是有更简单的解决方案?我该如何实现呢?

4

2 回答 2

1

如果要显示 git log 输出,最好使用 post-receive 挂钩。

如果您想显示一个可能对用户更友好的版本号,那么我建议:-

  • 一个post-receive钩子,显示当前发布版本的标签名称(假设您标记版本)
  • 将 current-version.html 放在你的 git repo 中,这样它就会与git pull
于 2013-02-26T14:58:27.833 回答
1

如果你的服务器是 git repo 的克隆并且你正在使用标签,那么git describe将使用最新的标签并给出一个偏移量:

$ git describe --long
r1.0-2-gca93d0a

在上面,最后一个标签是r1.0并且2表示我们是经过该标签的两次提交,接下来是g(代表“git”)和当前哈希ca93d0a

$ git log --oneline
ca93d0a Add info on testing.
949d558 Fixes to get wsdl2java working.
d0a02b1 Initial CXF.

从这里可以看出,标签r1.0指向d0a02b1提交:

$ git show-ref --dereference r1.0 | tail -1
d0a02b1488154b052fed9d568f3823d15567ebb5 refs/tags/r1.0^{}
于 2013-02-27T04:54:11.623 回答