¿Fusionar múltiples ramas de git en el maestro?
Pregunta
Tengo 3 ramas de git:
- maestro
- actualizar
- auth_upgrade
No he realmente usando ramas como debería ... así que master
es obsoleto, refresh
es un poco fuera de fecha La fecha y auth_upgrade
es en realidad la rama que es completamente actual.
Entonces ... en última instancia, quiero hacer que auth_upgrade
sea la rama maestra y luego git push
a mi repositorio de github.
¿Cuál es el mejor proceso para hacer eso?
Solución
Puedes colocar auth_upgrade
en master
.
$ git co master
$ git pull . auth_upgrade
- luego realice el trabajo de línea principal en
master
y use esta rama para sincronizar con su control remoto .. - aplique el mismo procedimiento para
actualizar
, si hay algunos cambios únicos que desea incluir ...
ver:
$ man git-pull
git-pull - Fetch from and merge with another repository or a local branch
Otros consejos
Puede cambiar el nombre de las sucursales con Opción git branch -m
:
git branch -m master old_master
git branch -m auth_upgrade master
Si cuando dices "desactualizado" las ramas antiguas son ancestros estrictos, entonces realmente no tienes ningún problema de combinación.
Si solo desea convertir su rama actual en la rama maestra en su repositorio remoto, simplemente puede hacerlo:
git push origin HEAD:master
Editar: de uno de tus comentarios, parece que no tienes todos los cambios del maestro remoto en tu rama actual, por lo que es posible que debas combinarlos antes de presionar con éxito. :
git fetch
git merge origin/master
Luego puedes eliminar tus sucursales locales. eliminar con un pequeño -d
es seguro ya que solo elimina las ramas que son ancestros de su rama actual.
git branch -d master
git branch -d refresh.
Si le molesta que su sucursal local no se llame maestro, ahora puede hacerlo:
git checkout -b master
git branch -d auth_upgrade