diff --git a/scripts/install.sh b/scripts/install.sh index ae893458dbd..2e60e67d826 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1960,16 +1960,17 @@ checkout_git_openclaw_ref() { return 0 fi - run_quiet_step "Fetching requested version" git -C "$repo_dir" fetch --tags origin - if [[ "$ref" == "main" ]]; then + run_quiet_step "Fetching requested version" git -C "$repo_dir" fetch --no-tags origin main run_quiet_step "Checking out main" git -C "$repo_dir" checkout main if [[ "$GIT_UPDATE" == "1" ]]; then - run_quiet_step "Updating repository" git -C "$repo_dir" pull --rebase || true + run_quiet_step "Updating repository" git -C "$repo_dir" pull --rebase --no-tags || true fi return 0 fi + run_quiet_step "Fetching requested version" git -C "$repo_dir" fetch --tags origin + if git -C "$repo_dir" rev-parse --verify --quiet "refs/tags/${ref}^{commit}" >/dev/null; then run_quiet_step "Checking out ${ref}" git -C "$repo_dir" checkout --detach "$ref" return 0