Error de inserción de Git, "Se rechazaron las actualizaciones de avance no rápido"

He editado mis repositorys de GIT a través de Git Online. Después de intentar presionar mis cambios de código local, recibí un error:

Git push failed, To prevent from losing history, non-fast forward updates were rejected. 

¿Cómo puedo arreglar esto?

Tire de los cambios primero:

 git pull origin branch_name 

Agregue –force a su línea de command si está seguro de que desea presionar. Por ejemplo, use git push origin --force (recomiendo la línea de command ya que encontrará mucho más soporte de otros usuarios con la línea de command. También esto puede no ser posible con SmartGit). Consulte este sitio para get más información: http: // help.github.com/remotes/

Antes de presionar, haz una tirada de git con la opción de rebase. Esto obtendrá los cambios que realizó en línea (en su origen) y los aplicará localmente, luego agregará los cambios locales en la parte superior.

 git pull --rebase 

Ahora, puedes empujar hacia el control remoto

 git push 

Para get más información, eche un vistazo a Git rebase explicado y Capítulo 3.6 Git Branching – Rebasing .

Encontré el mismo error, simplemente agregue "–force" al command, funciona

 git push origin master --force 

He tenido el mismo problema.
La razón fue que mi sucursal local de alguna manera había perdido el seguimiento de la contraparte remota.

Después

 git branch branch_name --set-upstream-to=origin/branch_name git pull 

y resolviendo los conflictos de fusión, pude presionar.

(Una) Solución para Netbeans 7.1: Pruebe un tirón. Esto probablemente también falle. Ahora eche un vistazo a los loggings (generalmente se muestran ahora en el IDE). Hay una / más línea que dice:

"Error de extracción debido a este file:"

Busque ese file, elimínelo (haga una copy de security antes). Por lo general, es un file .gitignore, por lo que no eliminará el código. Rehaga el empuje. Todo debería funcionar bien ahora.

He tenido el mismo problema. Resolví con

 git checkout <name branch> git pull origin <name branch> git push origin <name branch> 

Esto es lo que funcionó para mí. Se puede encontrar en la documentation de git aquí

Si estás en la sucursal deseada, puedes hacer esto:

 git fetch origin # Fetches updates made to an online repository git merge origin YOUR_BRANCH_NAME # Merges updates made online with your local work