我有一个使用git的项目。我可以通过ssh访问webserver,我可以执行命令:
git log --decorate
它将向我提供有关该服务器上当前部署的内容的信息。但如果有人没有这种访问权限,他们应该总是让我检查。
我正在考虑在每个git log --decorate
之后或在我签出任何标签时生成带git pull
转储或任何其他命令的文件的解决方案。每个人都可以通过网址{website}/current-version.html
访问。
我想我应该使用git hooks或者有一个更简单的解决方案? 我该如何实现呢?
答案 0 :(得分:1)
如果你想显示git log输出,那么最好使用post-receive钩子。
如果您想显示一个可能更加用户友好的版本号,那么我建议: -
post-receive
挂钩,显示当前发布版本的标签名称(假设您标记版本)git pull
答案 1 :(得分: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^{}