我正在编写一个脚本,该脚本将采用作为创建分支基础的规范。因此,它将具有以下内容:
git checkout -b $newbranch $startingpoint
现在,startingpoint可以指定为分支名称、标签或 SHA1。
在脚本的后面,我需要根据startingpoint实际情况做不同的事情。原以为git rev-parse会给我这个信息,但我似乎无法随心所欲地弯曲它。
有没有一种 git 方式,最好是瓷器,来获取我寻求的信息?
更新
我使用这些show-ref信息来制作以下 shell 函数:
git_ref_type() {
    [ -n "$1" ] || die "Missing ref name"
    if git show-ref -q --verify "refs/heads/$1" 2>/dev/null; then
        echo "branch"
    elif git show-ref -q --verify "refs/tags/$1" 2>/dev/null; then
        echo "tag"
    elif git show-ref -q --verify "refs/remote/$1" 2>/dev/null; then
        echo "remote"
    elif git rev-parse --verify "$1^{commit}" >/dev/null 2>&1; then
        echo "hash"
    else
        echo "unknown"
    fi
    return 0
}
这目前似乎运作良好,尽管它只是经过非常轻微的测试。
