sobrescritos siguientes serĂ¡n por pisar origin los locales force error ejemplo checkuot cambios archivos git git-pull

siguientes - Git Pull ignorando cambios locales?



git pull origin master (8)

¿Hay alguna manera de hacer un git pull que ignore los cambios en los archivos locales sin eliminar el directorio y tener que realizar un git clone ?


El comando de abajo no funciona siempre . Si lo haces solo:

$ git checkout thebranch Already on ''thebranch'' Your branch and ''origin/thebranch'' have diverged, and have 23 and 7 different commits each, respectively. $ git reset --hard HEAD is now at b05f611 Here the commit message bla, bla $ git pull Auto-merging thefile1.c CONFLICT (content): Merge conflict in thefile1.c Auto-merging README.md CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result.

y así...

Para comenzar de nuevo, descargando thebranch y sobrescribiendo todos sus cambios locales, simplemente haga lo siguiente:

$ git checkout thebranch $ git reset --hard origin/thebranch

Esto funcionará bien

$ git checkout thebranch Already on ''thebranch'' Your branch and ''origin/thebranch'' have diverged, and have 23 and 7 different commits each, respectively. $ git reset --hard origin/thebranch HEAD is now at 7639058 Here commit message again... $ git status # On branch thebranch nothing to commit (working directory clean) $ git checkout thebranch Already on ''thebranch''


Esto recuperará la rama actual e intentará hacer un avance rápido para dominar:

git fetch && git merge --ff-only origin/master


Mira el git stash para poner todos tus cambios locales en un "archivo de stash" y volver al último commit. En ese momento, puede aplicar sus cambios ocultos o descartarlos.


Para mí funcionó lo siguiente:

(1) Primero busca todos los cambios:

$ git fetch --all

(2) Luego reinicie el maestro:

$ git reset --hard origin/master

(3) Pull / update:

$ git pull


Si estás en Linux:

git fetch for file in `git diff origin/master..HEAD --name-only`; do rm -f "$file"; done git pull

El bucle for eliminará todos los archivos rastreados que se cambian en el repositorio local, por lo que git pull funcionará sin problemas.
Lo mejor de esto es que solo los archivos rastreados serán sobrescritos por los archivos en el repositorio, todos los demás archivos quedarán intactos.


Si quiere decir que desea que la barra sobrescriba los cambios locales, haciendo la fusión como si el árbol de trabajo estuviera limpio, bueno, limpie el árbol de trabajo:

git reset --hard git pull

Si hay archivos locales sin seguimiento, puede usar git clean para eliminarlos. Use git clean -f para eliminar archivos sin -df , -df para eliminar archivos y directorios sin -xdf , y -xdf para eliminar archivos o directorios sin -xdf o ignorados.

Si, por otro lado, quiere mantener las modificaciones locales de alguna manera, usaría el alijo para esconderlas antes de tirarlas, luego las volverá a aplicar:

git stash git pull git stash pop

No creo que tenga sentido ignorar literalmente los cambios, sin embargo, la mitad de la atracción es la combinación, y necesita fusionar las versiones comprometidas del contenido con las versiones que obtuvo.


Solo desea un comando que dé exactamente el mismo resultado que rm -rf local_repo && git clone remote_url , ¿verdad? También quiero esta función. Me pregunto por qué git no proporciona dicho comando (como git reclone o git sync ), ni svn proporciona dicho comando (como svn recheckout o svn sync ).

Pruebe el siguiente comando:

git reset --hard origin/master git clean -fxd git pull


git fetch --all && git reset --hard origin/master