Cuando bifurco un repositorio, todas las ramas del repositorio ascendente vienen con él. A veces hay una cantidad abrumadora de ramas ascendentes cuando realmente solo me importan las ramas en las que estoy trabajando. Parece redundante tener las mismas ramas en dos repositorios cuando puedo configurar ambos controles remotos en mi repositorio local.
Por ejemplo:
El repositorio A tiene ramas A1,...,A1000. Cuando bifurco este repositorio en GitHub, obtengo un nuevo repositorio B con las mismas ramas (A1,...,A1000). Me gustaría que el repositorio B solo tuviera las ramas en las que estoy trabajando (por ejemplo, B1 y B2).
¿Es posible (e incluso recomendable) eliminar las ramas ascendentes de mi bifurcación para hacer las cosas más simples y limpias para mí y mi equipo (es decir, las únicas ramas en nuestra bifurcación son las ramas en las que estamos trabajando)? ¿Al menos todavía necesito la rama predeterminada del repositorio ascendente?
Respuesta1
¿Es posible (e incluso recomendable) eliminar las ramas ascendentes de mi bifurcación para hacer las cosas más simples y limpias para mí y mi equipo (es decir, las únicas ramas en nuestra bifurcación son las ramas en las que estamos trabajando)?
Ciertamente es posible, aunque no realmente necesario, eliminar las ramas ascendentes de la bifurcación. Cuando git clone
bifurque el repositorio, solo clonará la rama predeterminada (a menos que especifique un nombre de rama, y en su lugar la clonará). El historial de otras sucursales ni siquiera existirá localmente a menos que seleccione git fetch
la sucursal particular que desee o git fetch --all
.
En otras palabras, no habrá una mejora significativa para su flujo de trabajo al eliminar estas ramas ascendentes. El único beneficio que se me ocurre es que puede ser más fácil encontrar una rama de interés si hay menos ramas para examinar.
En cualquier caso, el comando para eliminar una rama en el remoto (esto no elimina la rama correspondiente localmente, si existe) es git push origin :branchToBeDeleted
.
Se puede eliminar una sucursal local (solo en su repositorio local, no en la bifurcación remota) con git branch -d branchToBeDeleted
.
Más información sobre cómo eliminar sucursales locales y remotas aquí.
¿Al menos todavía necesito la rama predeterminada del repositorio ascendente?
En pocas palabras, sería recomendable mantener la rama predeterminada. No creo git
que te permita eliminar la rama remota predeterminada con la sintaxis proporcionada anteriormente (como alguien lo ha intentado aquí):
remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'
Si la rama predeterminada es una que no desea conservar, vaya a la configuración de ese repositorio en GitHub o cualquier plataforma de alojamiento Git que utilice y cambie la rama predeterminada antes de intentar eliminar la rama en cuestión.