Pregunta

He acabo de sacar una nueva rama, hice algunos cambios locales, comprometido y trató de empujar. Me dieron este error: ! [rejected] groups -> groups (non-fast forward) Así que he intentado una para tirar, pero me dijeron Already up-to-date.

Aquí es lo que consigo estirar y empujar.

~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
 ! [rejected]        groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'

Puede alguien explicar cómo esto puede estar sucediendo y cómo puedo solucionarlo?

¿Fue útil?

Solución

Cuando se tiró de la rama, se utiliza la opción "--track" (con el fin de mantenerlo rama local de seguimiento de la rama remota). Si no lo hizo, se puede explicar que el comando "fusión" que no funciona.

Puede hacer la fusión manualmente:

git fetch
git merge origin/groups

Para comparar repositorios locales y remotos, te sugiero este comando (agregarlo en un alias, es muy útil):

git log --graph --oneline --all --decorate

Se imprimirá el árbol de la historia del proyecto, que muestra las etiquetas de rama. Por lo que verá en su rama y la rama divergen origen.

Nota: si desea conservar una historia lineal, en lugar de una "fusión", que puede hacer un "rebase" de su sucursal local en el control remoto antes de empujar:

git rebase origin/groups
git push origin groups

Otros consejos

Me vino aquí con un problema diferente.

Mi git se creó para impulsar todas las ramas. Yo estaba en un FOO rama, sino que también estaba tratando de empujar principal, que no era hasta la fecha. El truco estaba notando que estaba tratando de empuje principal:

To git@git.machine:repo
 ! [rejected]        master -> master (non-fast-forward)

Me añadió lo siguiente a mi .gitconfig sólo empujar la rama actual por defecto:

[push]
    default = current

Esto no es una respuesta a la pregunta formulada. He tenido un problema diferente con el mismo mensaje de error.

Mi rama local no tenía la rama remota para tirar de los cambios desde configurado correctamente [git pull]. Esto fue evidente a partir de la O / p de git remote show origin. Por lo tanto, tuve que usar en lugar de git pull origin <branch_name> git pull para tirar de los cambios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top