Ala*_*avi 74
git rev-parse HEAD 将为您提供最新提交的SHA-1.
Von*_*onC 30
而不是HEAD SHA1,我宁愿选择git describe,作为获得"构建ID"的更可读的方式.例如:
git describe --abbrev=4 HEAD
Run Code Online (Sandbox Code Playgroud)
如果你不关心标签,并考虑到这git describe是一个不应该在脚本中使用的瓷器命令,那么,git rev-parse(管道命令)更合适.
但同样,如果你要在你的网站上显示一个SHA1作为id,我会选择:
git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)
(为了仅显示SHA1的前7位数)
git rev-parse HEAD(这意味着所有40位数字)仍然有用,当你想检查你刚刚部署的是否确实是HEAD指的是什么.
例如,请参阅此部署脚本:
它首先触发更新:
#If requested, perform update before gathering information from repos.
if $update; then
echo "Updating fred-official."
cd "$fredDir"
git_update
if ! [[ "$forceFredID" = "" ]]
then
checkGitID "$forceFredID"
fi
echo "Updating website repo."
cd "$websiteDir"
git_update
if ! [[ "$forceWebsiteID" = "" ]]
then
checkGitID "$forceWebsiteID"
fi
cd "$startingDir"
fi
Run Code Online (Sandbox Code Playgroud)
更新本身刷新网站内容:
# Discard any local changes, update remote branches and tags, and
# check out to the latest master branch.
git_update() {
#To update tags and branches.
git remote update
git clean -dfx
git reset --hard origin/master
}
Run Code Online (Sandbox Code Playgroud)
然后它用于git rev-parse HEAD检查刚刚签出的内容:
function checkGitID {
checkID=$1
echo Checking git ID is "$checkID"
if ! git checkout "$checkID"
then
echo Failed to checkout "$checkID"
exit 4
fi
if ! actualID=$(git rev-parse --verify HEAD)
then
echo Failed to verify "$checkID"
git checkout master
exit 5
fi
if ! [[ "$actualID" = "$checkID" ]]
then
echo Git verification failed, something very bad is happening
exit 6
fi
echo Git ID verified: "$checkID"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56167 次 |
| 最近记录: |