当我做一个git push live master
时,我想在服务器端使用git describe
来检查版本,但是当下面的执行时,变量是空的?
由于存储库是裸露的,也许我无法访问它,或者在接收后我无法执行或其他什么?
#!/bin/sh
currentVersion=`git describe --abbrev=0`
echo $currentVersion
mkdir /var/www/example/public_html/projects/$currentVersion
git --work-tree=/var/www/example/public_html/projects/core --git-dir=/var/repo/cool.git checkout -f
我也试过这个
#!/bin/sh
currentVersion=$(git describe --abbrev=0)
echo $currentVersion
mkdir /var/www/example/public_html/projects/$currentVersion
git --work-tree=/var/www/example/public_html/projects/core --git-dir=/var/repo/cool.git checkout -f
而这个
#!/bin/sh
currentVersion="${git describe --abbrev=0}"
echo "{$currentVersion}"
mkdir /var/www/example/public_html/projects/"{$currentVersion}"
git --work-tree=/var/www/example/public_html/projects/core --git-dir=/var/repo/cool.git checkout -f
编辑:我试图回应这个echo $(git describe)
结果是fatal: No names found, cannot describe anything.
。不幸的是,我认为我无法在我的服务器上执行该命令。如果是这种情况,我可以通过 git push 传递数据(可能需要调查一下)吗?
检查一下:如何在裸 git 存储库上运行 git 描述?
如果您确实没有任何标签,但想测试您的钩子,请将您的 git 命令更改为类似
currentVersion=$(git describe --always)
此外,请确保挂钩具有执行权限。
我需要git push live --tags