我正在为我正在为其工作的公司开发一个内部 Web 应用程序。它托管在一个私有的 github 存储库上,但我的大部分开发工作都是在家里的 linux 桌面上完成的,为此的 Web 服务器托管在公司办公室的一个小型树莓派上。它本质上是 nginx 前端将 /api url 代理到 pm2 支持的 nodejs 应用程序。
git push
我从我家通过 ing 到 github 存储库并git pull
在服务器中配置生产分支来进行部署。一个git hook
post-commit
脚本在临时停止生产 api 服务器之前在构建目录中运行 npm install,复制 node_modules 目录并运行一个脚本,该脚本本质上git describe --abbrev=0 --tags
是获取版本号并将其存储在一个.env
文件中,以便生产服务器向其宣布其版本客户。
如果我在家里运行 git describe 它会给出版v4.2.2
本,但在诊所我得到了v4.1.17
,我不明白为什么
在下图中,左侧部分是gitk --all
我的家庭存储库中的输出,并且在诊所中只有终端访问权限,您可以从右侧部分看到几乎相同的图表使用git log
- 缺少与任何一个都不相关的提交master
或production
分支。v4.2.2 只有两次提交,而 v4.1.17 至少有 10 次。
为什么 git describe 的行为方式是这样的?
编辑:我有点知道答案 - 在服务器上有一个提交后挂钩最终在分支上进行提交,即使它不应该 - 它只应该在开发机器上进行.