¿Qué es la poda Git?


86

He podado accidentalmente algunas ramas remotas y realmente no sé cuál es la consecuencia de esto (hice clic en el botón "Eliminar ramas remotas" en Git Extensions, pensando que eliminaría una rama remota).

La documentación oficial dice "git-prune - Elimina todos los objetos inalcanzables de la base de datos de objetos". Realmente no entiendo lo que esto significa. Supongo que esto podría haber eliminado las ramas fusionadas, pero no estoy realmente seguro.



1
También puede valer la pena consultar git gc: git-scm.com/docs/git-prune .
kovac

Respuestas:


91

"Podar ramas remotas" en Git Extensions ejecuta el git remote prunecomando, que elimina las ramas de seguimiento remoto local donde la rama ya no existe en el control remoto.

Vea aquí: https://git-scm.com/docs/git-remote#git-remote-empruneem


¿Entonces básicamente le da prioridad a su control remoto y ajusta su local para que coincida con sus sucursales remotas?
Cariño

3
@Honey no, simplemente elimina las ramas de seguimiento remoto local , las ramas normales no se tocan.
1615903

32

Esta basura solo recoge tus ramas.

Eso significa que, si no se puede alcanzar un objeto (una confirmación) en ninguno de los antepasados ​​de su rama, se eliminará para la base de datos git y, como tal, ya no se podrá acceder.

Esto solo limpia un poco el repositorio de git y lo hace más liviano.


4
De acuerdo con la documentación, para tareas de mantenimiento de la casa como esta, puede ser mejor hacer un en git gclugar de un git pruneque esencialmente también hará un git prune.
kovac

1
Votar en contra: esta respuesta (y la pregunta para el caso) confunde git pruney git remote prune. No son lo mismo, este último limpia las ramas que ya no existen en el remoto y deja intactas las sucursales locales.
JBert

12

Es importante saber que la ciruela pasa está ligada a repositorios . No todo el mundo sabe que puede vincular su repositorio local a varios mandos a distancia. Resulta útil cuando, por ejemplo, trabaja con un proyecto de código abierto y se obliga a trabajar a través de bifurcaciones.

Entonces, el comando podar requiere un nombre de repositorio. En la mayoría de los casos lo es git remote prune origin, pero puede llamar a su repositorio de cualquier manera, no tiene que ser así origin.


2

Puede haber ramas de características remotas que se eliminan después de fusionarlas en master. Es posible que hayamos eliminado las ramas de funciones como una forma de limpieza. Pero si ha verificado la rama eliminada del sistema local y la ha configurado en estado como seguimiento, git pull no eliminará esas ramas locales (porque ya están desconectadas del servidor). Para limpiar ese tipo de sucursales huérfanas locales, el git prunecomando será útil para ayudar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.