git reset pregunta "¿más?"

81

Línea de comandos de Windows Git, versión 1.8.0

Tengo 3 confirmaciones hasta ahora y cuando escribo

git reset --soft HEAD^

aparece una nueva línea

More?

y cursor intermitente para entrada

Entonces, lo que sea que escriba, siempre obtengo

fatal: argumento ambiguo 'HEAD': revisión desconocida o ruta que no está en el árbol de trabajo. Utilice '-' para separar las rutas de las revisiones, así: 'git [...] - [...]

Todos los demás comandos funcionan bien en la misma carpeta.

norbertas.gaulia
fuente
13
Si está usando Windows, podría hacerlo git log HEAD^^, creo.
Nombre McChange
@NameMcChange si convierte su comentario en una respuesta, entonces mi respuesta se puede eliminar.
mcdon
@mcdon Nah, puedes tenerlo
Nombre McChange
Para evitar cualquier otro tipo de escape en los comandos de git, comencé a usar git bash en lugar del símbolo del sistema de Windows. Git para Windows proporciona una emulación BASH que se usa para ejecutar Git desde la línea de comandos. Entonces, si instala git para Windows, podrá ejecutar sus comandos git en Git Bash. Prefiero esto porque, de esta manera, se lo usará para escribir el comando git de manera independiente de la plataforma. Sus comandos no serán diferentes a los que escribió en máquinas Linux o Mac.
2 de

Respuestas:

72

ver si git log HEAD^funciona. Si no es así, puede ser algo relacionado con su localización o terminal. Parece estar filtrando el ^símbolo. Como solución alternativa, úselo git reset --soft HEAD~1por ahora.

Adam Dymitruk
fuente
git log HEAD^arroja exactamente el mismo escenario, aunque la git reset --soft HEAD~1solución funciona bien
norbertas.gaulia
1
Gracias, la solución alternativa ayuda. Más no es pedir más.
Dzmitry Prakapenka
39

Su caparazón está interpretando el ^símbolo como un símbolo de continuación de línea. O simplemente evite usar ^como sugiere Adam :

git reset --soft HEAD~1

o cite el argumento para que el shell no intente interpretarlo (no estoy seguro exactamente qué shell está usando, pero me sorprendería si esto no funciona):

git reset --soft "HEAD^"
yo y
fuente
Este es un problema bastante común :)
Romain
28

^ Es un carácter de escape en la línea de comandos de Windows. Utilice ^^ en lugar de ^.

git reset --soft HEAD^^

Consulte las páginas de secuencias de comandos de Rob Van Der Woude para obtener detalles sobre los caracteres de escape .

Mcdon
fuente