He fubar'd completamente mi sucursal local, y me gustaría comenzar de nuevo. La versión en el servidor es correcta.
No quiero comenzar de nuevo, me gustaría usar mi historial local para arreglar mi gran error. (Puedo si tengo que hacerlo).
git fetch branchname
y git pull branchname
no trabajes El mensaje que recibo está " actualizado ", sin embargo, mi versión local no coincide con la del servidor.
git pull origin/branchname
me da un error " no encontrado ".
Respuestas:
primero, cree una nueva rama en la posición actual (en caso de que necesite su antiguo historial 'jodido'):
Actualice su lista de sucursales remotas y sincronice nuevas confirmaciones:
luego, restablezca su rama al punto donde el origen / rama apunta a:
¡tenga cuidado , esto eliminará cualquier cambio de su árbol de trabajo !
fuente
git fetch origin
antes del reinicioorigin/branch
. Nunca.git reset
mientras HEAD apunta a una rama, esa rama te seguirá.Lo que hago cuando arruino mi sucursal local es cambiar el nombre de mi sucursal rota y revisar / bifurcar la sucursal aguas arriba nuevamente:
Luego, si está seguro de que no quiere nada de su rama anterior, elimínelo:
Pero generalmente dejo la antigua sucursal localmente, en caso de que tuviera algo allí.
fuente
git checkout -b <branch> --track <remote>/<branch>
¿El suyo funciona igual de bien, sin el--track
?branch.autoSetupMerge
(que creo que por defecto es verdadera) hace que la--track
implícita. Y sí, en todas mis configuraciones de git no necesito explícitamente--track
cuando hago uncheckout -b
, pero YMMV.Es probable que su sucursal local tenga modificaciones que desee descartar. Para hacer esto, necesitará usar
git reset
para restablecer la cabeza de la rama al último punto que divergió de la rama del repositorio aguas arriba. Úselogit branch -v
para encontrar la identificación sha1 de la rama ascendente y restablezca su rama utilizandogit reset SHA1ID
. Entonces debería poder hacer ungit checkout
para descartar los cambios que dejó en su directorio.Nota: siempre haga esto en un repositorio respaldado. De esa manera puedes asegurarte de que funcionaste bien. O si no fuera así, tiene una copia de seguridad a la que volver.
fuente
Esto es para revertir todos los cambios locales al encabezado de origen
fuente