2011-07-20 14 views
10

Estoy tratando de impulsar nuevos cambios, pero tengo un archivo en conflicto. Después de intentar presionar, aparece el siguiente error:Git diciéndome que jale, luego me comprometa, luego tire?

Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

Ok, entonces tenemos que usar git pull. intento usar git pull y luego me sale este error:

error: Your local changes to the following files would be overwritten by merge: 
    db/profile_edit.php 
Please, commit your changes or stash them before you can merge. 

embargo, cuando intento de cometer, vuelvo al primer error. ¿Que debería hacer? Los cambios en el repositorio remoto son más nuevos que los de mi máquina local. Entonces, ¿cómo lo abro con una herramienta diff y realizo los cambios y luego le digo a git que hice los cambios para que pueda impulsar los cambios?

Respuesta

23

Tratar de hacer

$ git pull --rebase 

Para extraer los cambios remotos antes de la suya, y luego comprometerse. Y mira si funciona

Si esto no funciona, intente esto en su lugar:

$ git stash 
$ git pull --rebase 
$ git stash pop 

Para guardar los cambios en la stash, aplicar compromete a distancia dentro de su trabajo repositorio, y luego aplicar los cambios (guardados en stash) dentro de su repositorio de trabajo de nuevo.

8

En primer lugar, creo que si fuera a git add entonces git commit, su repositorio local estaría lo suficientemente limpio como para hacer un git pull.

Sin embargo, si puede haber cambios que no desea confirmar hasta que vea lo que sucedió en el flujo ascendente, puede usar git stash. Limpiará temporalmente su directorio de trabajo y guardará los cambios, para que pueda extraer (recomendaría git pull --rebase para evitar puntos de fusión, pero es un problema de gusto personal). Una vez que haya realizado los cambios ascendentes, puede obtener sus modificaciones locales de nuevo utilizando git stash pop. Después de limpiar los conflictos y deshacerse de los cambios innecesarios, puede agregar, confirmar y finalmente presionar.

+0

+1, buena explicación – sha256

5

Te confundes con los comandos.

git commit guarda los cambios en la base de datos de git git pull trae a distancia comete en su repo

Usted está tratando de tirón cambios sin confirmar, por lo Git le está pidiendo que cometer los primeros (o git stash a la basura) para que pueda combinar sus cambios locales con los remotos.

Cuestiones relacionadas