remota rama origin conflictos cambiar git heroku pull

rama - git push origin master



Error: No se puede extraer con rebase: tiene cambios sin registrar (7)

Empecé a colaborar con algunos amigos en un proyecto y usan el repositorio heroku git.

Cloné el repositorio hace unos días y desde entonces han hecho algunos cambios, así que estoy tratando de obtener las últimas actualizaciones

git pull --rebase comando git pull --rebase como se indica aquí (¿Es esta la manera correcta de hacerlo?): https://devcenter.heroku.com/articles/sharing#merging-code-changes

Obtuve el siguiente error:

$ git pull --rebase Cannot pull with rebase: You have unstaged changes. Please commit or stash them.

Supongo que me equivoqué con el código y ahora quiere que yo lo comprometa o lo descarte (¿eso es lo que significa esconder?) Los cambios. ¿Esto es lo que está pasando? Si este es el caso, me gustaría descartar cualquier cambio que pudiera haber hecho y obtener el código actualizado del repositorio de git.

¿Alguna idea de lo que puedo hacer?


Cuando el cambio fuera de escena se debe a que git está intentando arreglar las convenciones de eol en un archivo (como es siempre mi caso), ninguna cantidad de almacenamiento, extracción o reinicio lo hará desaparecer.

Sin embargo, si la intención es realmente rebasear e ignorar el cambio sin registrar, entonces lo que hago es eliminar la rama localmente y luego verificarla nuevamente.

git checkout -f anyotherbranchthanthisone git branch -D thebranchineedtorebase git checkout thebranchineedtorebase

Voila! No me ha fallado todavía.


Do git status , esto te mostrará qué archivos han cambiado. Como usted indicó que no desea mantener los cambios, puede hacer que git checkout -- <file name> o git reset --hard para deshacerse de los cambios.

En su mayor parte, git te dirá qué hacer con respecto a los cambios. Por ejemplo, su mensaje de error le dice a git stash sus cambios. Esto sería si quisieras conservarlos. Después de tirar, entonces harías git stash pop y tus cambios se volverían a aplicar.

git status también tiene cómo deshacerse de los cambios dependiendo de si el archivo está configurado para cometer o no.


Esto funciona para mí:

git fetch git rebase --autostash FETCH_HEAD


Primero comienza con un git status

Vea si tiene algún cambio pendiente. Para descartarlos, ejecuta

git reset --hard


Si desea mantener sus cambios de trabajo mientras realiza una rebase, puede usar --autostash . De la documentation :

Antes de comenzar la rebase, guarde las modificaciones locales (ver git-stash[1] ) si es necesario, y aplique el alijo cuando termine.

Por ejemplo:

git pull --rebase --autostash


Siempre puedes hacer

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

y obtendrás (a) ningún cambio si tienes cambios no confirmados que entran en conflicto con los cambios en sentido ascendente o (b) el mismo efecto que esconder / tirar / aplicar: una rebase para ponerte sobre los últimos cambios de HEAD y tus cambios no confirmados como es.


Tirando con rebase es una buena práctica en general.

Sin embargo, no puede hacer eso si su índice no está limpio, es decir, ha realizado cambios que no se han confirmado.

Puede hacer esto para evitar el problema, suponiendo que desea mantener sus cambios:

  1. esconde tus cambios con: git stash
  2. extraer de master con rebase
  3. vuelve a aplicar los cambios que guardaste en (1) con: git stash apply stash@{0} o el más simple git stash pop