Herramientas
Lazygit Interfaz de usuario simple para Git en la terminal.
GitHub Desktop Aplicación de escritorio que facilita el uso de Git y GitHub.
.gitignore Generator Generador en línea de archivos .gitignore para diversos entornos.
Template SegoCode Plantilla base para proyectos de desarrollo colaborativos.
GitHub Actions Generator Generador visual de flujos de trabajo (workflows) para GitHub Actions.
Shields.io Generador de insignias personalizadas para repositorios de GitHub.
Markdown Badges Colección de insignias para incluir en archivos README en Markdown.
Sourcegit Alternativa ligera a Git, escrita en Rust.
Repo Badges Insignias para README que reflejan la actividad y calidad del repositorio.
Repo Badges Insignias para README que reflejan la actividad y calidad del repositorio.
Refined Github Funcionalidad extendida de github
Material icons Github Iconos para los archivos de Github
Este script de PowerShell identifica y elimina ramas remotas en Git con más de 4 meses de inactividad, configurado mediante la variable $monthsOld = 4
. Calcula una fecha umbral restando esos meses a la fecha actual, obtiene todas las ramas remotas y filtra las que son anteriores a esa fecha. Luego, muestra las ramas antiguas y pregunta si se desean eliminar. Si se confirma, elimina tanto la rama remota (git push --delete origin
) como la rama local (git branch -d
). Si no hay ramas antiguas, informa al usuario.
# Define el numero de meses antiguos para la comparacion$monthsOld = 4
# Obtiene la fecha actual y resta el numero de meses especificado$thresholdDate = (Get-Date).AddMonths(-$monthsOld)
# Obtiene todas las ramas remotas con la ultima fecha de commit en formato legible$branches = git for-each-ref --sort=-committerdate refs/remotes/ --format="%(refname:short) %(committerdate:iso8601)"
# Convertir la salida de git en objetos de PowerShell para facilitar el manejo$branchObjects = $branches | ForEach-Object { $parts = $_ -split ' ', 2 [PSCustomObject]@{ BranchName = ($parts[0] -replace '^origin/', '') # Elimina el prefijo 'origin/' LastCommitDate = [DateTime]$parts[1] }}
# Filtrar y mostrar las ramas que son mas antiguas que la fecha umbral$oldBranches = $branchObjects | Where-Object { $_.LastCommitDate -lt $thresholdDate }
# Imprimir las ramas en un formato tabularif ($oldBranches.Count -gt 0) { Write-Output "Ramas remotas mas antiguas que $monthsOld meses:" $format = @{Expression={$_.BranchName};Label="Nombre de la rama";Width=50}, @{Expression={$_.LastCommitDate.ToString('yyyy-MM-dd')};Label="Ultimo Commit";Width=20} $oldBranches | Format-Table $format
# Preguntar si se desea eliminar cada rama $oldBranches | ForEach-Object { $branchName = $_.BranchName $lastCommitDate = $_.LastCommitDate.ToString('yyyy-MM-dd') $response = Read-Host "Desea eliminar la rama '$branchName' con ultimo commit el $lastCommitDate ? (s/n)" if ($response -eq 's') { # Eliminar la rama en remoto Write-Output "Ejecutando comando para eliminar rama remota" git push --delete origin $branchName Write-Output "Rama remota '$branchName' eliminada."
# Eliminar la rama en local Write-Output "Ejecutando comando para eliminar rama local" git branch -d $branchName Write-Output "Rama local '$branchName' eliminada."
} else { Write-Output "Rama '$branchName' no eliminada." } Write-Output " " Write-Output " " }} else { Write-Output "No hay ramas remotas con mas de $monthsOld meses de antiguedad."}