Soy novato en git y estoy trabajando en git.
Agregué algunos archivos en git:
git add <file1>
git add <file2>
luego quise presionar eso para revisión, pero por error lo hice
git commit
para que los archivos que he cambiado no se revisen.
Ahora si entro el comando:
git status
dice
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Quiero revertir ese compromiso y quiero enviar esos archivos para revisión en lugar de confirmar. ¿Alguien puede decirme cómo puedo hacer eso?
git reset HEAD^
Respuestas:
No puedes empujar nada que aún no se haya cometido. El orden de operaciones es:
git add
- esto pone en etapa sus cambios para confirmargit commit
- esto confirma sus cambios por etapas localmentegit push
- esto empuja sus cambios comprometidos a un control remotoSi empuja sin comprometerse, no se empuja nada. Si se compromete sin agregar, no se compromete nada. Si agrega sin confirmar, no pasa nada, git simplemente recuerda que los cambios que agregó deben considerarse para la siguiente confirmación.
El mensaje que está viendo (su rama está por delante en 1 confirmación) significa que su repositorio local tiene una confirmación que aún no se ha enviado.
En otras palabras:
add
ycommit
son operaciones localespush
,pull
yfetch
son operaciones que interactúan con un control remoto.Dado que parece haber un flujo de trabajo de control de fuente oficial en el lugar donde trabaja, debe preguntar internamente cómo se debe manejar esto.
fuente
origin
repositorio. También recomendaría leer algunos de los tutoriales / intros para git en git-scm.com/documentationgit reset HEAD^ --soft
(Guarde sus cambios, vuelva a la última confirmación)git reset HEAD^ --hard
(Descartar cambios, volver a la última confirmación)fuente
Si solo desea deshacerse de los cambios y volver a la última confirmación (la que quería compartir):
Es posible que desee verificar para asegurarse de que desea esto (
git log
), porque perderá todos los cambios.Una alternativa más segura es correr
fuente
Resolví esto simplemente ejecutando un simple:
Nada mas. Ahora se muestra:
fuente
git reset HEAD ^
entonces deberían aparecer los archivos modificados.
Puede mover los archivos modificados a una nueva rama
utilizar,
git checkout -b newbranch
git checkout commit -m "files modified"
git push origin newbranch
git checkout master
entonces debería estar en una rama limpia, y sus cambios deberían almacenarse en newbranch. Más tarde, podría fusionar este cambio en la rama maestra
fuente
eliminar los archivos especificados de la siguiente confirmación
fuente