Estamos usando un repositorio central de git que he clonado y estoy trabajando en una sucursal local.¿Cómo rebase y empuja eficientemente una rama de git local?
Cuando quiero hacer mis cambios disponibles en el repositorio central, tengo que emita los siguientes comandos (a partir del mybranch
):
#Stash local changes not yet ready for checkin
git stash
#Make sure we have all changes from the central repository
git checkout master
git pull
#Rebase local changes
git checkout mybranch
git rebase
#Push changes
git checkout master
git merge mybranch
git push
#Back to my branch and continue work
git checkout mybranch
git stash apply
Me gustaría saber si es posible utilizar menos git comandos para lograr el mismo objetivo. Los varios conmutadores entre master
y mybranch
son especialmente molestos, ya que nuestro repositorio es bastante grande, por lo que toman un poco de tiempo.
¿Qué quiere decir con "suponiendo que se trata de una rama de seguimiento remoto"? mybranch es una sucursal local, solo existe en mi propio repositorio. ¿Su solución también funcionará bajo estas circunstancias? – siebert
Una "rama de seguimiento remoto" es en realidad una rama local, excepto que git recuerda un repositorio y una sucursal remotos predeterminados para usar cuando se hace una "extracción". De lo contrario, los comandos 'git push' y 'git pull' tendrían que dar una ubicación de repositorio completa. He aquí un ejemplo de creación de una rama de seguimiento remoto $ git rama feature_x origin/master o $ git checkout -b feature_x origin/master Si deja fuera de la especificación remoto ('origin/master' en este caso) entonces feature_x no es una rama de seguimiento remoto. –