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 --rebase
pero ¿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 origin
asumiendo que el origen es su control remotogit reset --hard origin/master
fuente
git diff master origin/master
(es decirgit diff local remote
) para ver los cambios que eliminarágit push origin master:branch
que 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 --interactive
poco 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 --rebase
rehacer mi trabajo además de los cambios más recientes ygit push
nuevamente.fuente
your team lead merged to master
? ¿No dijiste que ya presionaste para dominar? ¿Qué contiene el commit adicional? Intentegit diff origin/master
ver 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 theirs
Tome 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 fetch
Restablecimiento 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 dionoop
el ú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
git
significa que ha realizado tres confirmaciones en su repositorio local y no las ha publicado en elmaster
repositorio. 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--rebase
opción significa quegit
moverá 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 abortarrebase
si no sabe cómo resolver los conflictos mediante el usogit rebase --abort
y 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 fetch
Mi problema fue resuelto. ¡¡¡Espero que esto ayude!!!
fuente
finalmente:
fuente