¿Hay alguna manera de hacer un git pull
que ignore cualquier cambio de archivo local sin volar el directorio y tener que realizar un git clone
?Git Pull ignorando los cambios locales
Respuesta
Si quiere decir que desea que el tirón para sobrescribir los cambios locales, haciendo la fusión como si el árbol de trabajo estaban limpias, bien, limpiar el árbol de trabajo:
git reset --hard
git pull
Si hay archivos locales sin seguimiento podría utilizar git clean
para eliminarlos. Use git clean -f
para eliminar los archivos sin seguimiento, -df
para eliminar los archivos y directorios no rastreados, y -xdf
para eliminar los archivos o directorios no rastreados o ignorados.
Si por el contrario desea conservar las modificaciones locales de alguna manera, tendrá que utilizar escondite para ocultar a la basura antes de tirar, a continuación, volver a aplicarlos después:
git stash
git pull
git stash pop
no creo que hace que cualquier sentido para literalmente ignorar los cambios, sin embargo, la mitad de la extracción se fusiona, y debe fusionar las versiones confirmadas de contenido con las versiones que obtuvo.
Si después de 'git reset' sus archivos aún difieren del remoto, lea http://stackoverflow.com/questions/1257592/removing-files-saying-old-mode-100755-new-mode-100644-from-unstaged- cambios en –
Git es lo más extraño que haya existido. Git reset --hard done. Luego, estado de git: su rama está adelantada por 2 commits. – shailenTJ
@shailenTJ "Cambios locales" aquí significa cambios no confirmados, no confirmaciones locales. 'git reset --hard' afecta al primero, no al segundo. Si desea restablecer completamente el estado del control remoto, 'git reset --hard origin/
Mire git stash para poner todos sus cambios locales en un "archivo oculto" y revertir a la última confirmación. En ese momento, puede aplicar sus cambios escondidos, o descartarlos.
Si está en Linux:
git fetch
for file in `git diff origin/master..HEAD --name-only`; do rm -f "$file"; done
git pull
El bucle se eliminarán todos los archivos bajo seguimiento que se cambian en el repositorio local, por lo git pull
funcionará sin ningún problema.
Lo mejor de esto es que solo los archivos rastreados serán sobrescritos por los archivos en el repositorio, todos los otros archivos quedarán intactos.
Creo que quería decir "archivos rastreados" que es exactamente lo que necesito, gracias. – Ali
El comando debajo de no funcionará siempre. Si lo hace simplemente:
$ 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í sucesivamente ...
Para realmente empezar de nuevo, la descarga de thebranch y sobrescribir todos los cambios locales, acaba de hacer:
$ 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'
SÍ. Esto es lo que necesitaba para un enfoque definitivo de "no dé un F sobre lo que es local". Gracias. :) – Adambean
Para mí Esta trabajaron:
(1) En primer lugar obtener todos los cambios:
$ git fetch --all
(2) A continuación, restablezca el maestro:
$ git reset --hard origin/master
(3) Tire/actualizar:
$ git pull
Esto obtendrá la rama actual y tratar de hacer un avance rápido de dominar:
git fetch && git merge --ff-only origin/master
git fetch --all && git reset --hard origin/master
- 1. git pull manteniendo los cambios locales
- 2. haga un git pull para sobrescribir cambios locales
- 3. Git pull necesita descartar archivos locales
- 4. Git pull eliminó cambios no confirmados
- 5. git cherry-pick y merge ignorando los cambios de EOL
- 6. Git: deshacer cambios locales; git add. + git rm?
- 7. git stash y git pull
- 8. git: ¿Cómo sobrescribo todos los cambios locales en la fusión?
- 9. Mantener los cambios locales en un repositorio git
- 10. Git está ignorando los directorios .git en los subdirectorios
- 11. git pull: permiso denegado
- 12. Git Pull: Cambiar la autenticación
- 13. Git pull change log
- 14. git pull (actualizar archivo local solamente)
- 15. git parcial pull
- 16. Git rollback 1 pull
- 17. Git rebase falla, 'Tus cambios locales a los siguientes archivos se sobrescribirán mediante fusión'. No hay cambios locales?
- 18. ¿Por qué ejecutar `git pull` eliminar mis cambios comprometidos?
- 19. ¿Cómo ver cambios de código después de git pull?
- 20. git pull --rebase
- 21. cómo descartar los cambios de la sucursal local de git?
- 22. git selectivo revertir cambios locales desde un archivo
- 23. git pull y git push de una vez
- 24. GIT: Agregar cambios locales a la sucursal no actual
- 25. Cómo push/pull git rebase
- 26. Git diff informa cambios locales 'old mode'/'new mode'
- 27. Evitar que se realicen cambios locales en Git
- 28. Usando git-svn: Pull, Merge or Rebase?
- 29. Deshacer un git pull --rebase
- 30. Use 'pull' o 'merge' para fusionar sucursales locales?
Por "ignora" Qué quiere decir "sobreescribe"? – Cascabel