tag - git pull dice actualizado, pero git push rechaza el avance no rápido
git tag commits (3)
Acabo de sacar una nueva sucursal, hice algunos cambios locales, me comprometí y traté de impulsar. Me dieron este error ! [rejected] groups -> groups (non-fast forward)
! [rejected] groups -> groups (non-fast forward)
Así que traté de tirar, pero me dijeron que Already up-to-date.
Esto es lo que obtengo tirando y empujando.
~/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''
¿Alguien puede explicar cómo puede estar sucediendo esto y cómo puedo solucionarlo?
Cuando sacó la rama, ¿usó la opción "--track" (para mantener su rama local rastreando la rama remota). Si no lo hizo, puede explicar que el comando "fusionar" no funciona.
Puede hacer la fusión manualmente:
git fetch
git merge origin/groups
Para comparar repos locales y remotos, te sugiero este comando (agrégalo en un alias, es útil):
git log --graph --oneline --all --decorate
Imprimirá el árbol del historial del proyecto, mostrando las etiquetas de las ramas. Entonces verás dónde divergen tu rama y la rama de origen.
Nota: si desea conservar un historial lineal, en lugar de una "fusión", puede hacer una "rebase" de su sucursal local en el control remoto antes de presionar:
git rebase origin/groups
git push origin groups
Esta no es una respuesta a la pregunta. Tuve un problema diferente con el mismo mensaje de error.
Mi sucursal local no tenía la rama remota para que los cambios se configuraran correctamente [git pull]. Esto fue evidente a partir de la o / p de git remote show origin
. Entonces, tuve que usar git pull origin <branch_name>
lugar de git pull
para obtener los cambios.
Vine aquí con un problema diferente.
Mi git fue configurado para empujar todas las ramas. Yo estaba en una rama FOO, pero también estaba tratando de enviar master, que no estaba actualizado. El truco fue notar que estaba tratando de empujar al maestro:
To [email protected]:repo
! [rejected] master -> master (non-fast-forward)
Agregué lo siguiente a mi .gitconfig para que solo presione la rama actual de manera predeterminada:
[push]
default = current