Estoy usando Git 1.7.4.1. Quiero obtener la última versión de mi código del repositorio, pero recibo errores ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Eliminé las copias locales de los archivos de los que se queja la herramienta, pero sigo recibiendo los errores. ¿Cómo verifico la última versión del repositorio remoto? - Dave
git fetch
primero. No recibía conflictos, pero es así como obtuve la última versión del código.Respuestas:
Si no le importan los cambios locales (incluidos los archivos o subrepositorios no rastreados o generados que simplemente están aquí) y solo quiere una copia del repositorio:
Nuevamente, esto afectará cualquier cambio que haya realizado localmente, así que úselo con cuidado. Piensa
rm -Rf
en hacer esto.fuente
git clean -f
No es realmente parte de la respuesta. Eliminará los archivos que no se guardan en el repositorio (por ejemplo, en mi caso, archivos de registro); no necesita hacer esto para volver agit pull
trabajar, sologit reset --hard HEAD
es suficiente.git clean -f
es importante si quieres una limpieza real de tu repositorio. Es el equivalente a hacer un "Eliminar todo de la carpeta -> Obtener la última versión / Obtener específico" en TFS y en mi caso, esto es lo que quería.Caso 1: no me importan los cambios locales
Solución 1: obtenga el último código y restablezca el código
Solución 2: elimine la carpeta y clone nuevamente: D
Caso 2: preocuparse por los cambios locales
Solución 1: sin conflictos con la nueva versión en línea
informará algo como:
Entonces obtén la última versión
Solución 2: conflictos con la nueva versión en línea
informará algo como:
Compromete tus cambios locales
Intenta obtener los cambios (fallará)
informará algo como:
Abra el archivo de conflicto y solucione el conflicto. Luego:
informará algo como:
Más información: ¿Cómo uso 'git reset --hard HEAD' para volver a un commit anterior?
fuente
Sospecho que lo que sucedió puede ser que haya eliminado los archivos que modificó (porque no le importaban esos cambios) y ahora git está tomando la eliminación como un cambio.
Aquí hay un enfoque que mueve sus cambios fuera de su copia de trabajo y los coloca en el "alijo" (recuperable si realmente resulta que alguna vez los necesita de nuevo), para que luego pueda extraer los últimos cambios desde la parte superior.
Si alguna vez desea recuperar sus archivos (conflictos potenciales con cambios ascendentes y todo), ejecute un
git stash apply
para pegar esos cambios en la parte superior de su código. De esa manera, tiene un enfoque de "deshacer".fuente
git stash pop
menos que quieras un historial de tusTienes que fusionar tus archivos primero. Haga una
git status
para ver cuáles son los archivos que deben fusionarse (significa que primero necesita resolver los conflictos) Una vez hecho esto, hazgit add file_merged
y haz tupull
otra vez.fuente
prueba este código
fuente
Si solo desea deshacerse de todo en su carpeta de trabajo (por ejemplo, los resultados de una fusión fallida o abortada) y volver a una confirmación previa limpia, haga un
git reset --hard
.fuente
Entiendo que quieres tirar a la basura tus cambios locales y desplegar lo que está en tu control remoto.
Si todo lo demás falla, y si tiene (bastante comprensible) miedo de "restablecer", lo más simple es simplemente clonar el origen en un nuevo directorio y desechar el anterior.
fuente
Al ejecutar este comando, obtendrá la etiqueta más reciente que generalmente es la versión de su proyecto:
fuente
A mí me parece que estás teniendo problemas de core.autocrlf. core.autocrlf = true puede generar problemas como los que usted describe en Windows si las nuevas líneas CRLF se registraron en el repositorio. Intente deshabilitar core.autocrlf para el repositorio y realice un restablecimiento completo.
fuente
Si está utilizando Git GUI, primero busque y luego combine.
Recuperar a través del menú remoto >> Recuperar >> Origen. Fusionar a través del menú Fusionar >> Fusionar local.
Aparece el siguiente cuadro de diálogo.
Seleccione el botón de radio de la rama de seguimiento (también seleccionado de forma predeterminada), deje el cuadro amarillo vacío y presione combinar y esto debería actualizar los archivos.
Ya había revertido algunos cambios locales antes de seguir estos pasos, ya que quería descartarlos de todos modos para no tener que eliminarlos mediante la fusión posterior.
fuente