Pode las ramas locales en Git

Ashok Chapagai 19 diciembre 2022
Pode las ramas locales en Git

Digamos que su proyecto tiene muchas ramas que se crearon en la máquina local, pero que no existen en el repositorio remoto. Puede eliminar fácilmente todas las ramas locales que no están sincronizadas con el repositorio remoto, pero antes de hacerlo, es posible que desee verificar todas las ramas que están disponibles en su máquina local, puede ejecutar git branch.

Ahora, para enumerar todas las ramas remotas, puede usar el comando git branch -r. Para lograr ambos resultados en un solo comando, puede usar el comando git branch -a. Con las ramas confirmadas, puede continuar con el resto del artículo.

Quitar (podar) ramas locales en Git

Puede ejecutar el siguiente comando con facilidad para eliminar las ramas de seguimiento que no están en el repositorio remoto.

git remote prune origin

El comando anterior elimina las ramas de seguimiento que no están en el repositorio remoto, sin embargo, la rama local aún no se elimina. Para eliminar realmente las ramas locales, es posible que deba seguir los pasos adicionales que se explican a continuación.

  • Enumere todas las ramas con salida detallada,
    git branch -vv
    

    Ahora, canalice la salida a grep para origin/.* : gone] ya que el estado desaparecido se coloca en las ramas que no están disponibles en el repositorio remoto pero están disponibles en la máquina local.

    grep 'origin/.*: gone]'
    
  • De nuevo canaliza la salida a awk (que es una muy buena herramienta para formatear) como se muestra a continuación.
    awk '{print $1}'
    
  • Finalmente, desea canalizar la salida a xargs, que se puede usar cuando necesita tomar la salida de un comando y usarla como argumento para otro. No debe pasar la salida del Paso 2 al comando git branch -d para eliminar las ramas locales como,
    xargs git branch -d 
    

Por lo tanto, el último comando de dos líneas para podar y eliminar todas las ramas locales que no están disponibles en el repositorio remoto se encuentra a continuación.

git remote prune origin

Después de ejecutar el comando anterior, es posible que desee ejecutar el siguiente comando para lograr la eliminación de las ramas locales que no están disponibles en el repositorio remoto.

git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -d
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

Artículo relacionado - Git Prune