Su rama está por delante de 'origen/maestro' por 3 confirmaciones
Obtengo lo siguiente cuando ejecutogit status
Your branch is ahead of 'origin/master' by 3 commits.
He leído en alguna otra publicación que la forma de solucionar este problema es ejecutar, git pull --rebase
pero ¿qué es exactamente rebase? ¿Perderé datos o es esta una forma sencilla de sincronizar con el maestro?
Recibe ese mensaje porque realizó cambios en su maestro local y no los envió al control remoto. Tienes varias formas de "resolverlo" y normalmente depende de cómo se vea tu flujo de trabajo:
- En un buen flujo de trabajo, su copia remota del maestro debe ser la buena, mientras que su copia local del maestro es solo una copia de la remota. Al utilizar este flujo de trabajo, nunca volverás a recibir este mensaje.
- Si trabaja de otra manera y sus cambios locales deben impulsarse, entonces simplemente
git push origin
suponga que el origen es su control remoto - Si sus cambios locales son malos, simplemente elimínelos o reinicie su maestro local al estado en remoto
git reset --hard origin/main
Utilice estos 4 comandos simples
Paso 1 :git checkout <branch_name>
Es obvio entrar en esa sucursal.
Paso 2 :git pull -s recursive -X theirs
Realice cambios en sucursales remotas y reemplácelos con sus cambios si surge un conflicto. Aquí, si lo hace, git status
obtendrá algo como esto: su rama está por delante de 'origen/maestro' en 3 confirmaciones.
Paso 3 :git reset --hard origin/<branch_name>
Etapa 4 :git fetch
Restablece tu sucursal.
Disfrutar.
No hay nada que arreglar. Simplemente realizó 3 confirmaciones y aún no las ha movido a la rama remota. Hay varias opciones, dependiendo de lo que quieras hacer:
git push
: mueve tus cambios al control remoto (esto podría ser rechazado si ya hay otros cambios en el control remoto)- no hacer nada y seguir codificando, sincronizar otro día
git pull
: obtenga los cambios (si los hay) del control remoto y combínelos con sus cambiosgit pull --rebase
: como arriba, pero intenta rehacer tus confirmaciones además de los cambios remotos
Estás en una situación clásica (aunque normalmente no te comprometerías mucho con el master en la mayoría de los flujos de trabajo). Esto es lo que normalmente haría: Revisar mis cambios. Tal vez git rebase --interactive
hacerles algunos cosméticos, eliminar los que apestan, reordenarlos para hacerlos más lógicos. Ahora muévelos al control remoto con git push
. Si esto es rechazado porque mi sucursal local no está actualizada: git pull --rebase
rehacer mi trabajo además de los cambios más recientes una y git push
otra vez.
Encontré este problema después de fusionar una solicitud de extracción en Bitbucket.
Tuve que hacer
git fetch
y eso fue todo.