Recibo lo siguiente cuando ejecuto git status
Your branch is ahead of 'origin/master' by 3 commits.
He leído en alguna otra publicación que se ejecuta la forma de solucionar esto, git pull --rebasepero ¿qué es exactamente el rebase? ¿Perderé datos o es esta forma simple de sincronizar con el maestro?
git
git-rebase
FluxEngine
fuente
fuente

Respuestas:
Recibió ese mensaje porque realizó cambios en su maestro local y no los empujó a remoto. Tiene varias formas de "resolverlo" y normalmente depende de cómo se vea su flujo de trabajo:
git push originasumiendo que el origen es su control remotogit reset --hard origin/masterfuente
git diff master origin/master(es decirgit diff local remote) para ver los cambios que eliminarágit push origin master:branchque utilicé el que regresóEverything up-to-date, después de eso, el mensaje de estar por delante por x commits desapareció.No hay nada que arreglar. Simplemente ha realizado 3 confirmaciones y aún no las ha movido a la rama remota. Hay varias opciones, según lo que quieras hacer:
git push: mueva sus cambios al control remoto (esto podría ser rechazado si ya hay otros cambios en el control remoto)git pull: obtenga los cambios (si los hay) del control remoto y combínelos en sus cambiosgit pull --rebase: como arriba, pero intente rehacer sus confirmaciones además de los cambios remotosSe encuentra en una situación clásica (aunque generalmente no se comprometería mucho en master 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 --interactivepoco de cosméticos, deje caer los que apestan, reordenarlos para que sean más lógicos. Ahora muévalos al control remoto congit push. Si esto se rechaza porque mi sucursal local no está actualizada:git pull --rebaserehacer mi trabajo además de los cambios más recientes ygit pushnuevamente.fuente
your team lead merged to master? ¿No dijiste que ya presionaste para dominar? ¿Qué contiene el commit adicional? Intentegit diff origin/masterver en qué se diferencia su sucursal local de la remota.Use estos 4 comandos simples
Paso 1 :
git checkout <branch_name>Esto es obvio para entrar en esa rama.
Paso 2 :
git pull -s recursive -X theirsTome los cambios de rama remotos y reemplácelos con sus cambios si surgen conflictos. Aquí, si lo haces
git status, obtendrás algo como esto: tu rama está por delante de 'origen / maestro' en 3 confirmaciones.Paso 3 :
git reset --hard origin/<branch_name>Paso 4 :
git fetchRestablecimiento completo de su rama.
Disfrutar.
fuente
Encontré este problema después de fusionar una solicitud de extracción en Bitbucket.
Tuve que hacer
y eso fue todo.
fuente
Por lo general, si tengo que verificar cuáles son las confirmaciones que difieren del maestro que hago:
De esta manera puedo ver los commits y decidir soltarlos o elegir ...
fuente
git diff ...magias no funcionarían. Cuando hice esto, me dionoopel único compromiso, y cuando lo acepté, ahora mi rama está sincronizada con origin / master. Por lo tanto, parece que los commits diff del origen / master no fueron en efecto nada.Este mensaje de
gitsignifica que ha realizado tres confirmaciones en su repositorio local y no las ha publicado en elmasterrepositorio. El comando para ejecutar eso esgit push {local branch name} {remote branch name}.El comando
git pull(ygit pull --rebase) es para la otra situación cuando hay commit en el repositorio remoto que no tiene en su repositorio local. La--rebaseopción significa quegitmoverá su confirmación local a un lado, se sincronizará con el repositorio remoto y luego intentará aplicar sus tres confirmaciones desde el nuevo estado. Puede fallar si hay un conflicto, pero luego se le pedirá que los resuelva. También puede abortarrebasesi no sabe cómo resolver los conflictos mediante el usogit rebase --aborty volverá al estado antes de ejecutarlogit pull --rebase.fuente
Si tu git dice que estás comprometido, entonces solo Primero,
Para asegurarse de que ha empujado todo su último trabajo en repositorio
Entonces,
Para restablecer y combinar con el repositorio
fuente
Esto me sucedió una vez después de fusionar una solicitud de extracción en Bitbucket.
Solo tenía que hacer:
git fetchMi problema fue resuelto. ¡¡¡Espero que esto ayude!!!
fuente
finalmente:
fuente