如何验证当前分支中是否存在具有给定sha的提交?
解析输出有很多种方法,但我需要返回布尔值的最佳方法(用于bash脚本).
例如
sha=$1
if [ -z `git magic --validate $sha` ]; then
echo "Invalid commit sha: $sha"
exit 1
fi
Run Code Online (Sandbox Code Playgroud) 我有一个bash脚本,它接受一个分支名称(例如,"master"或"feature/foo")或提交哈希(例如"1234abcd")的字符串.
我已经检出了存储库,所以我可以调用git.
确定字符串是分支名称还是提交哈希的最佳方法是什么?
#!/bin/bash
commit_or_branch="$1"
cd /path/to/my_repo
git fetch
if <is_branch $commit_or_branch>
then
echo "it's a branch"
else
echo "it's a commit"
fi
Run Code Online (Sandbox Code Playgroud) 我正在开发将其他应用程序从 git repo 部署到服务器的应用程序,并且有一个选项可供用户选择要部署的修订版。
我的问题是在不下载的情况下验证给定 repo 中存在修订版。
在类似的问题中,他们建议使用,test $(git cat-file -t $sha) == commit但需要本地回购。
是否可以通过其 URL 检查远程仓库上是否存在修订版?
我想知道为什么我收到 refname 不明确的警告?
这是否意味着名称以字符串开头的分支不超过两个?但是这里没有。
谢谢。
$ git checkout B03799
warning: refname 'B03799' is ambiguous.
Switched to branch 'B03799'
$ git branch -l
B03318
B03318new
B03318newnew
B03318newnewQa
B03336
B03701
* B03799
master
qa
staging
Run Code Online (Sandbox Code Playgroud)