Я пишу script, который будет использовать спецификацию, используемую в качестве базы для создания ветки. Таким образом, у него будет что-то вроде этого:
git checkout -b $newbranch $startingpoint
Теперь startingpoint
можно указать либо как имя ветки, тэг, либо SHA1.
Позже в script мне нужно делать разные вещи, основываясь на том, что на самом деле startingpoint
. Я думал, что git rev-parse
предоставит мне эту информацию, но я не могу склонить ее к своей прихоти.
Есть ли способ git, предпочтительно фарфор, чтобы получить информацию, которую я ищу?
Обновление
Я использовал информацию show-ref
для создания следующей функции оболочки:
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
}
На данный момент это работает хорошо, хотя это было очень легко проверено.