Clear-Host Write-Host "Opciones de commit:" -ForegroundColor Cyan Write-Host "1. Pegar mensaje de commit (recomendado para mensajes largos)" Write-Host "2. Escribir mensaje simple" Write-Host "" $opcion = Read-Host "Seleccione una opción (1/2)" if ($opcion -eq "1") { # Crear archivo temporal para el mensaje $tempFile = [System.IO.Path]::GetTempFileName() Write-Host "`nAbriendo editor de texto..." -ForegroundColor Yellow Write-Host "1. Pegue su mensaje de commit" Write-Host "2. Guarde el archivo (Ctrl+S)" Write-Host "3. Cierre el editor (Alt+F4 o X)" -ForegroundColor Green Write-Host "" # Abrir notepad con el archivo temporal notepad.exe $tempFile | Out-Null # Verificar que el archivo tenga contenido if (-not (Test-Path $tempFile) -or (Get-Item $tempFile).Length -eq 0) { Write-Host "No se ingresó ningún mensaje. Abortando..." -ForegroundColor Red Remove-Item $tempFile -ErrorAction SilentlyContinue exit } } else { $mensajeFinal = Read-Host "`nIngrese el mensaje de commit" # Para mensajes simples, crear archivo temporal también $tempFile = [System.IO.Path]::GetTempFileName() Set-Content -Path $tempFile -Value $mensajeFinal -NoNewline } Write-Host "`nAgregando archivos..." git add . Write-Host "Creando commit..." git commit -F $tempFile # Eliminar archivo temporal después del commit Remove-Item $tempFile -ErrorAction SilentlyContinue Write-Host "Haciendo push a la rama develop..." $pushOutput = git push origin develop 2>&1 # Revisar si fallo la autenticacion if ($pushOutput -match "Authentication failed" -or $pushOutput -match "Failed to authenticate") { Write-Host "`nERROR: Fallo la autenticacion. Ejecutando git init para reconfigurar..." -ForegroundColor Red git init Write-Host "Intentando push nuevamente..." git push origin develop } Write-Host "`nProceso finalizado."