En Git, una rama es solo una lista ordenada de confirmaciones (también conocido como checkins). Algo que puede ser un poco confuso para los nuevos usuarios es que las sucursales no necesitan tener un nombre (aunque en la mayoría de las circunstancias usted quiere uno); y no hay nada particularmente especial en ninguna rama en particular (la master
rama es solo la predeterminada que se crea cuando inicializa un repositorio).
Probablemente ya lo sepas, pero Git es diferente a otros sistemas de control de versiones como el popular "Subversion", porque cada "copia de trabajo" (en lenguaje Subversion) es un repositorio propio ... de hecho, no hay nada particularmente especial sobre cualquier copia en particular; excepto que una copia ha sido generalmente acordada como la "canónica" que se utiliza para almacenar el producto final.
Entonces, volviendo a su pregunta ... el repositorio "canónico" que clonó cuando comenzó su copia local contenía una rama "maestra" por defecto; y está atrapado Ahora, si tuviera acceso a la computadora que contiene el repositorio maestro, puede iniciar sesión y ejecutar:
git branch -d master
Sin embargo, si no puede hacerlo, puede hacerlo desde su máquina local. El git branch
comando tiene una -r
opción que afecta el repositorio remoto. En otras palabras, ejecutar el siguiente comando debería funcionar:
git branch -d -r master
Tenga en cuenta que en ambos casos; Supongo que master
se ha fusionado completamente en el historial de desarrollo en el que se encuentra actualmente su copia local. Si nunca lo ha usado master
antes (es decir, solo se ha registrado en development
o production
), no tiene nada de qué preocuparse. Sin embargo, si usted (u otra persona) ha estado revisando las cosas master
, entonces podría tener un problema. Puede forzar una eliminación cambiando el -d
a -D
en los comandos anteriores; ¡pero recomiendo comprobar para ver qué hay de master
antemano! Si no tiene acceso a la computadora remota, ¡probablemente no podrá recuperarla!
Por cierto; Si usted (o cualquier otra persona) es nuevo en Git, le recomiendo leer Git from the Bottom Up de John Wiegley . Aunque había usado Git un poco antes de encontrar este artículo, realmente no entendí cómo funcionaba hasta que lo leí. ¡Es bastante útil!
git branch -d -r master
ya no elimina la rama remota, elimina el conocimiento de su copia local de la rama remota. ¡La próxima vez que vuelvasgit fetch
, la rama volverá! En cambio, querrás corrergit push origin :master
. Esencialmente, lo que está haciendo aquí es empujar una rama nula (el nombre de la rama vacía a la izquierda de la:
) sobre la parte superior de la rama remota (el nombre de la rama a la derecha de la:
), eliminándola efectivamente.