Sería útil si pudiera proporcionar más detalles. ¿Desea adoptar el contenido de todos los archivos de la sucursal remota o solo algunos de los archivos (es decir, mantener algunas versiones / cambios locales)? ¿Tienes alguna historia local que quieras conservar? (Esto podría ser importante si hay otras sucursales o repositorios que ya han incorporado su historial local). Si desea mantener su historial local, ¿qué planea hacer con él más adelante? (Puede dejar una etiqueta apuntando al historial local y simplemente restablecer su rama a lo que tiene el control remoto, o puede que desee "fusionar la suya").
Podría valer la pena señalar que esta se separará cabeza - El interrogador podría prefieren quedarse en la rama congit stash; git fetch origin; git reset --hard origin/master
Marcos Longair
10
Creo que el comentario de Mark Longair es la respuesta real a esta pregunta
ha sido la respuesta más útil para mí +1
Andres
¿Cómo volver al estado anterior al git stash? git stash listesta vacio.
Leo
Quiero abrazarte
Ugur Kazdal
45
Entiendo la pregunta de esta manera: desea reemplazar por completo el contenido de un archivo (o una selección) desde arriba. No desea afectar el índice directamente (por lo que debería pasar por add + commit como de costumbre).
Tengo entendido que, por ejemplo, guardó erróneamente un archivo que había actualizado solo con fines de prueba. Luego, cuando ejecuta "git status", el archivo aparece como "Modificado" y dice algunas palabras malas. Solo desea recuperar la versión anterior y continuar trabajando normalmente.
En ese escenario, puede ejecutar el siguiente comando:
Para mí funcionó así "git checkout remotes / origin / master <my-file>"
saravanakumar
4
Use la opción -so --strategycombinada con la -Xopción. En su pregunta específica, desea conservar todos los archivos remotos y reemplazar los archivos locales del mismo nombre.
Reemplazar conflictos con la versión remota
git merge -s recursive -Xtheirs upstream/master
utilizará la versión de repositorio remoto de todos los archivos en conflicto.
Reemplazar conflictos con la versión local
git merge -s recursive -Xours upstream/master
utilizará la versión de repositorio local de todos los archivos en conflicto.
git merge -s their
.Respuestas:
Esta es la solución más segura:
Ahora puedes hacer lo que quieras sin temor a conflictos.
Por ejemplo:
Si desea incluir los cambios remotos en la rama maestra, puede hacer lo siguiente:
Esto hará que ramifiques "maestro" para que apunte a "origen / maestro".
fuente
git stash; git fetch origin; git reset --hard origin/master
git stash
?git stash list
esta vacio.Entiendo la pregunta de esta manera: desea reemplazar por completo el contenido de un archivo (o una selección) desde arriba. No desea afectar el índice directamente (por lo que debería pasar por add + commit como de costumbre).
Simplemente haz
Si desea hacer esto para subárboles extensos y, en cambio, desea afectar el índice directamente, use
Luego puede (opcionalmente) actualizar su copia de trabajo haciendo
fuente
Tengo entendido que, por ejemplo, guardó erróneamente un archivo que había actualizado solo con fines de prueba. Luego, cuando ejecuta "git status", el archivo aparece como "Modificado" y dice algunas palabras malas. Solo desea recuperar la versión anterior y continuar trabajando normalmente.
En ese escenario, puede ejecutar el siguiente comando:
fuente
Verificaría el archivo remoto del "maestro" (el repositorio remoto / de origen) de esta manera:
Ejemplo: git checkout master components / indexTest.html
fuente
Use la opción
-s
o--strategy
combinada con la-X
opción. En su pregunta específica, desea conservar todos los archivos remotos y reemplazar los archivos locales del mismo nombre.Reemplazar conflictos con la versión remota
utilizará la versión de repositorio remoto de todos los archivos en conflicto.
Reemplazar conflictos con la versión local
utilizará la versión de repositorio local de todos los archivos en conflicto.
fuente