我想在那里得到这个问题,看看我是否做得对.以下脚本工作,除了检查提交是否已被推送到远程仓库,我找不到正确的命令:
#!/bin/bash
set -e # fail on first error
verify_git_ref() {
log "Verifying git tag or commit: \"$1\" ...."
if git show-ref --tags --quiet --verify -- "refs/tags/$1"
then
log_success "Git tag \"$1\" verified...."
GIT_TAG_OR_REF=$1
return 0
elif git rev-list $1>/dev/null 2>&1
then
log_success "Git commit \"$1\" verified...."
GIT_TAG_OR_REF=$1
return 0
else
log_error "\"$1\" is not a valid tag or commit, you must use a valid tag or commit in order for this script to continue"
return 1
fi
}
Run Code Online (Sandbox Code Playgroud)
相关: 列表Git提交尚未推送到原点
检查遥控器是否具有给定标签非常简单 - 您只需要解析输出git ls-remote --tags以查看它是否包含您的标签.
检查给定的提交是否有点棘手.一切都是以ref为基础的.你知道它应该可以从哪个参考?如果你这样做,你应该只是获取那个ref并在本地检查提交是否是它的祖先.也就是说,从origin获取master并查看提交是否在origin/master上.
您也可以尝试使用git push -n将该提交推送到该分支的干运行,并查看会发生什么 - 如果它是无操作,则提交已经在分支上.
如果你不知道它应该是什么分支...你可能只需要获取并检查它们.
| 归档时间: |
|
| 查看次数: |
7304 次 |
| 最近记录: |