git - tag - Cómo rebase una sucursal local con un maestro remoto
resolver conflictos git (4)
He clonado el proyecto de la rama maestra del repositorio remoto remote_repo
. Creo una nueva rama y me comprometo con esa rama. Otros programadores empujaron a remote_repo
a la rama maestra. Ahora necesito cambiar mi RB de sucursal en el maestro remote_repo
. Como hacer esto ? ¿Qué comandos escribir al terminal?
Después de los cambios confirmados en su sucursal, extraiga el master y tire para obtener los cambios del repositorio:
git checkout master
git pull origin master
Luego revisa tu sucursal y vuelve a ajustar tus cambios en el maestro:
git checkout RB
git rebase master
o los dos últimos comandos en una línea:
git rebase master RB
Primero obtenga el nuevo maestro del repositorio ascendente, luego vuelva a escribir su rama de trabajo en eso:
git fetch origin # Updates origin/master
git rebase origin/master # Rebases current branch onto origin/master
Actualización : consulte la respuesta de Paul Draper para obtener una forma más concisa de hacer lo mismo: las versiones recientes de Git ofrecen una forma más sencilla de hacer el equivalente de los dos comandos anteriores.
Nota: si ya tiene un amplio conocimiento sobre rebase, use un trazador de líneas a continuación para un rebase rápido. Solución: Suponiendo que está en su rama de trabajo y que es la única persona que trabaja en ello.
git fetch && git rebase origin/master
Resuelva cualquier conflicto, pruebe su código, confirme y envíe nuevos cambios a la sucursal remota.
~: For noobs :~
Los siguientes pasos pueden ayudar a cualquiera que sea nuevo en git rebase
y quiera hacerlo sin problemas
Paso 1: Suponiendo que no hay confirmaciones y cambios que se realizarán en YourBranch en este momento. Estamos visitando YourBranch.
git checkout YourBranch
git pull --rebase
¿Que pasó? Extrae todos los cambios realizados por otros desarrolladores que trabajan en su sucursal y rebasa sus cambios por encima de ella.
Paso 2: Resuelve cualquier conflicto que se presente.
Paso 3:
git checkout master
git pull --rebase
¿Que pasó? Extrae todos los cambios más recientes del maestro y rebasa el maestro en el último maestro.
Paso 4: Resuelve cualquier conflicto que se presente.
Paso 5:
git checkout YourBranch
git rebase master
¿Que pasó? Rebase en master pasa
Paso 6: Resuelva cualquier conflicto, si hay conflictos. Use git rebase --continue
para continuar con el rebase después de agregar los conflictos resueltos. En cualquier momento puede usar git rebase --abort
para abortar el rebase.
Paso 7:
git push --force-with-lease
¿Que pasó? Empujando cambios a su control remoto YourBranch. --force-with-lease
se asegurará de que haya otros cambios entrantes para YourBranch de otros desarrolladores mientras rebasa. Esto es super útil en lugar de empujar la fuerza. En caso de que haya cambios entrantes, consígalos para actualizar su YourBranch local antes de impulsar cambios.
¿Por qué necesito impulsar cambios? ¿Para volver a escribir el mensaje de confirmación en el YourBranch remoto después de una actualización correcta o si hay algún conflicto resuelto? Luego debe enviar los cambios que resolvió en el repositorio local al repositorio remoto de YourBranch
Yahoooo ...! Usted está hecho con éxito con rebasar.
También podría estar interesado en hacer:
git checkout master
git merge YourBranch
¿Cuándo y por qué? Combine su rama en el maestro si lo hace con usted y otros co-desarrolladores. Lo que hace que YourBranch esté actualizado con el maestro cuando quería trabajar en la misma sucursal más tarde.
~: (๑ơ ₃ ơ)♥ rebase :~
git pull --rebase origin master