Cómo volver a la versión del archivo de la rama maestra de origen

425

Estoy en la rama maestra de mi computadora local de una rama maestra clonada de un repositorio de un servidor remoto.

Actualicé un archivo y quiero volver a la versión original desde la rama maestra remota.

¿Cómo puedo hacer esto?

mrblah
fuente

Respuestas:

874

Suponiendo que no confirmó el archivo, o lo agregó al índice, entonces:

git checkout -- filename

Suponiendo que lo haya agregado al índice, pero no lo confirmó, entonces:

git reset HEAD filename
git checkout -- filename

Asumiendo que lo cometiste, entonces:

git checkout origin/master filename

Asumiendo que quiere eliminar todas las confirmaciones de su rama (MUY DESTRUCTIVO):

git reset --hard origin/master
gahooa
fuente
43
Su tercera opción es muy diferente de sus dos primeras opciones en que toca todos los archivos y no solo un archivo. Es posible que desee señalar esto más explícitamente. Además, ¿por qué no recomendar git checkout HEAD filenamey git checkout origin/master filenamepara las opciones uno y dos, sería más consistente?
CB Bailey
55
@CharlesBailey: agregué la git checkout origin/master filenameopción a la respuesta de gahooa.
Frank
2
@cilphex elimina todas las confirmaciones en su rama actual
WattsInABox
1
Accidentalmente rebase la rama A de la rama B y necesitaba restablecerla a la rama local maestra. git reset --hard mastersolo fue mi solución ya que no quería llegar al origen. Gracias.
taco
3
@gahooa Probablemente debería ser git checkout: nombre de archivo, y si el archivo se llama "maestro", entonces obtendría un comportamiento que no estaba previsto.
user2602152
50

Me enfrenté al mismo problema y encontré este hilo, pero mi problema era upstream. Debajo del comando git funcionó para mí.

Sintaxis

git checkout {nombre-remoto} / {branch} - {file / path.js}

Ejemplo

git checkout upstream / desarrollo - public / js / index.js

Venkat.R
fuente
0

Si aún no lo confirmó a la rama maestra, es fácil:

  • bajarse de la rama maestra (como git checkout -b oops/fluke/dang)
  • confirma tus cambios allí (como git add -u; git commit;)
  • volver a la rama maestra (como git checkout master)

Sus cambios se guardarán en rama oops / fluke / dang; el maestro estará como estaba.

Pico común
fuente