fix(git): surface checkout errors for existing branches (#2122)

This commit is contained in:
Pascal THUET
2026-04-08 20:41:37 +02:00
committed by GitHub
parent 3028a00b6e
commit 838bd0fedc
5 changed files with 83 additions and 6 deletions

View File

@@ -337,8 +337,11 @@ if [ "$DRY_RUN" != true ]; then
if [ "$current_branch" = "$BRANCH_NAME" ]; then
:
# Otherwise switch to the existing branch instead of failing.
elif ! git checkout "$BRANCH_NAME" 2>/dev/null; then
elif ! switch_branch_error=$(git checkout -q "$BRANCH_NAME" 2>&1); then
>&2 echo "Error: Failed to switch to existing branch '$BRANCH_NAME'. Please resolve any local changes or conflicts and try again."
if [ -n "$switch_branch_error" ]; then
>&2 printf '%s\n' "$switch_branch_error"
fi
exit 1
fi
elif [ "$USE_TIMESTAMP" = true ]; then

View File

@@ -315,9 +315,13 @@ if (-not $DryRun) {
# Already on the target branch — nothing to do
} else {
# Otherwise switch to the existing branch instead of failing.
git checkout -q $branchName 2>$null | Out-Null
$switchBranchError = git checkout -q $branchName 2>&1 | Out-String
if ($LASTEXITCODE -ne 0) {
Write-Error "Error: Branch '$branchName' exists but could not be checked out. Resolve any uncommitted changes or conflicts and try again."
if ($switchBranchError) {
Write-Error "Error: Branch '$branchName' exists but could not be checked out.`n$($switchBranchError.Trim())"
} else {
Write-Error "Error: Branch '$branchName' exists but could not be checked out. Resolve any uncommitted changes or conflicts and try again."
}
exit 1
}
}