Su sucursal está por delante de 'origen / maestro' por 3 confirmaciones

Obtengo lo siguiente cuando git status

 Your branch is ahead of 'origin/master' by 3 commits. 

He leído en alguna otra publicación la manera de arreglar esto es ejecutar git pull --rebase pero, ¿qué es exactamente rebase, voy a perder datos o es esta manera simple de sincronizar con el maestro?

Recibes ese post porque hiciste cambios en tu maestro local y no los empujaste a remoto. Tiene varias forms de "resolverlo" y normalmente depende de cómo se ve su flujo de trabajo:

  • En un buen flujo de trabajo, la copy remota del maestro debe ser la correcta, mientras que la copy local del maestro es solo una copy de la copy remota. Al usar este flujo de trabajo, nunca volverás a recibir este post.
  • Si trabajas de otra manera y tus cambios locales deben ser empujados, entonces simplemente git push origin suponiendo que el origen es tu control remoto
  • Si sus cambios locales son malos, simplemente elimínelos o restablezca su maestro local al estado de git reset --hard origin/master remoto git reset --hard origin/master

No hay nada que arreglar Simplemente has realizado 3 commits y aún no los has movido a la twig remota. Hay varias opciones, dependiendo de lo que quieras hacer:

  • git push : mueve los cambios al control remoto (esto puede 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 corresponde) del control remoto y combínelos en sus cambios
  • git pull --rebase : como se git pull --rebase arriba, pero intenta rehacer tus commits sobre los cambios remotos

Estás en una situación clásica (aunque normalmente no comprometerías mucho al maestro en la mayoría de los flujos de trabajo). Esto es lo que normalmente haría: revisar mis cambios. Tal vez haga un git rebase --interactive para hacer algunos cosméticos sobre ellos, soltar los que chupan, reorderarlos para que sean más lógicos. Ahora muévelos al control remoto con git push . Si esto se rechaza porque mi sucursal local no está actualizada: git pull --rebase para rehacer mi trabajo además de los cambios más recientes y git push nuevamente.

Este post de git significa que ha realizado tres confirmaciones en su repository local y no las ha publicado en el repository master . El command para ejecutar es git push {local branch name} {remote branch name} .

El command git pull (y git pull --rebase ) son para la otra situación cuando hay commit en el repository remoto que no tienes en tu repository local. La opción --rebase significa que git moverá su confirmación local a un lado, se sincronizará con el repository remoto y luego intentará aplicar sus tres compromisos desde el nuevo estado. Puede fallar si hay un conflicto, pero luego se le pedirá que lo resuelva. También puede cancelar la rebase si no sabe cómo resolver los conflictos usando git rebase --abort y volverá al estado antes de ejecutar git pull --rebase .

Utilice estos 4 commands simples

Paso 1 : git checkout <branch_name>

Esto es obvio para entrar en esa twig.

Paso 2 : git pull -s recursive -X theirs

Tome los cambios de la sucursal remota y reemplácelos con sus cambios si surge un conflicto. Aquí, si haces el git status obtendrás algo como esto, tu sucursal estará por delante de 'origin / master' en 3 commits.

Paso 3 : git reset --hard origin/<branch_name>

Paso 4 : git fetch

Restablece tu sucursal.

Disfrutar.

Encontré este problema después de fusionar una request de extracción en Bitbucket.

Tuve que hacer

 git fetch 

y eso fue todo.

Por lo general, si tengo que verificar cuáles son las confirmaciones que difieren del maestro que hago:

 git rebase -i origin/master 

De esta forma puedo ver los commits y decidir dejarlo caer o elegir …

esto me sucedió una vez después de fusionar una request de extracción en Bitbucket.

solo tuve que hacer

 git fetch 

mi problema fue resuelto! ¡salud! ¡espero que esto ayude!