Tengo un proyecto clonado de una rama maestra del repositorio remoto remote_repo. Creo una nueva rama y me comprometo con esa rama. Otros programadores empujaron remote_repoa la rama maestra.
Ahora necesito volver a basar mi rama RB en remote_repomaster.
¿Como hacer esto? ¿Qué comandos escribir en una terminal?
git
clone
git-rebase
Damir
fuente
fuente

Respuestas:
Primero busque el nuevo maestro del repositorio ascendente, luego vuelva a basar su rama de trabajo en eso:
Actualización : consulte la respuesta de Paul Draper para obtener una forma más concisa de hacer lo mismo: las versiones recientes de Git proporcionan una forma más sencilla de hacer el equivalente de los dos comandos anteriores.
fuente
Your branch and 'origin/b1' have diverged, # and have 3 and 2 different commits each, respectively.Parece quegit pullse necesita otro . ¿Es correcto o me falta algo aquí?git rebase masterno realizará el mismo trabajo que el segundo comando (git rebase origin/master) desde entoncesmasteryorigin/masterbien puede apuntar a diferentes confirmaciones (especialmente dado que el primer comando fuegit fetch origin, que puede modificarseorigin/master).fuente
git pull --rebase=interactive origin masterdevy ejecutogit pull --rebase origin master, solodevse modificará la rama , nomaster. La--rebasedocumentación de la bandera indica que intentarebase the current branch on top of the upstream branch after fetchingy nada acerca de modificar las ramas de seguimiento locales.Después de confirmar los cambios en su sucursal, finalice la compra
mastery tire de ella para obtener los últimos cambios del repositorio:Luego revise su sucursal y vuelva a clasificar sus cambios en
master:... o los dos últimos comandos en una línea:
Al intentar retroceder
origin/RB, probablemente obtendrá un error; Si eres el único trabajandoRB, puedes forzar el empuje:... o de la siguiente manera si tiene git configurado adecuadamente:
fuente
git pushprescindir-f).Nota: Si ya tiene un amplio conocimiento sobre rebase, use debajo de un revestimiento para un rebase rápido. Solución: suponiendo que está en su rama de trabajo y que es la única persona que trabaja en ella.
Resuelva cualquier conflicto, pruebe su código, confirme y envíe nuevos cambios a la sucursal remota.
Los siguientes pasos pueden ayudar a cualquiera que sea nuevo
git rebasey quiera hacerlo sin problemasPaso 1: suponiendo que no hay confirmaciones y cambios que se realizarán en YourBranch en este momento. Estamos visitando YourBranch.
¿Que pasó? Extrae todos los cambios realizados por otros desarrolladores que trabajan en su sucursal y reajusta sus cambios sobre ella.
Paso 2: resuelve cualquier conflicto que se presente.
Paso 3:
¿Que pasó? Extrae todos los últimos cambios del maestro remoto y reajusta el maestro local en el maestro remoto. ¡Siempre mantengo el master remoto limpio y listo! Y, prefiera solo trabajar en master o sucursales localmente. Recomiendo hacer esto hasta que tenga una mano en los cambios o confirmaciones de git. Nota: Este paso no es necesario si no está manteniendo el maestro local, en su lugar, puede buscar y volver a crear un maestro remoto directamente en la sucursal local directamente. Como mencioné en un solo paso al comienzo.
Paso 4: resuelve cualquier conflicto que se presente.
Paso 5:
¿Que pasó? Rebase en master ocurre
Paso 6: resuelva cualquier conflicto, si hay conflictos. Use
git rebase --continuepara continuar el rebase después de agregar los conflictos resueltos. En cualquier momento puedes usargit rebase --abortpara abortar el rebase.Paso 7:
¿Que pasó? Empujando cambios a su remoto YourBranch.
--force-with-leasese asegurará de que haya otros cambios entrantes para YourBranch de otros desarrolladores durante el cambio de nombre. Esto es súper útil en lugar de forzar el empuje. En caso de que haya cambios entrantes, instálelos para actualizar su YourBranch local antes de enviar los cambios.¿Por qué necesito impulsar los cambios? ¿Para reescribir el mensaje de confirmación en YourBranch remoto después de un cambio apropiado o si hay algún conflicto resuelto? Luego, debe enviar los cambios que resolvió en el repositorio local al repositorio remoto de YourBranch
Yahoooo ...! Has terminado con éxito el rebase.
También podrías estar buscando hacer:
¿Cuándo y por qué? Combine su sucursal en maestra si lo hace con usted y otros co-desarrolladores. Lo que hace que YourBranch esté actualizado con master cuando quería trabajar en la misma sucursal más tarde.
fuente
Pulls latest changes from remote master to local master. I always prefer keeping remote master clean and release ready always!. Actualizaré mi descripción.Paso 1:
Paso 2:
Paso 3: (Repara si hay conflictos)
Paso 4:
Paso 5:
fuente
1.Actualice Master primero ...
2. Ahora rebase la fuente-rama con la rama maestra
Si la rama fuente aún no existe en el control remoto, entonces:
"et voila ..."
fuente
git fetch origin master:masterextrae la última versión de master sin necesidad de comprobarlo.Entonces todo lo que necesitas es:
git fetch origin master:master && git rebase master👌fuente
git fetchactualiza el maestro sin necesidad de comprobarlo también? Excepto quegit fetchno lo hacegit mergela derecha las actualizaciones? Entonces, si pagamosmaster, no tendrá las últimas actualizaciones. Entonces, ¿no es más corto hacerlo en la rama de características,git fetchentoncesgit rebase origin/master? No podemos hacerlogit rebase masterporque eso intentará rebasear desde elmasterespacio de trabajo, tenemosorigin/masterque salir de lo no fusionado pero sentado en lo local.