Egit rechazó el no avance rápido


Estoy recibiendo este mensaje mientras envío al repositorio github. ¿Puedes decirme el procedimiento paso a paso para arreglarlo? Presioné solo una vez y fue un éxito. Pero, cuando actualizé un proyecto y traté de empujar mi segundo commit, muestra "maestro rechazado no-avance rápido" y no me permite empujar. Sírvanse explicar el procedimiento.

Author: Nathan, 2013-10-20

8 answers

Tuve este mismo problema y pude solucionarlo. afk5min tenía razón, el problema es que la rama de la que sacó el código ha cambiado desde entonces en el repositorio remoto. Según las prácticas estándar de git ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ), necesita (ahora) fusionar esos cambios en el repositorio remoto en sus cambios locales antes de poder confirmar. Esto tiene sentido, esto le obliga a tomar los cambios de otros y combinarlos en su código, asegurando que su el código continúa funcionando con los otros cambios en su lugar.

De todos modos, en los pasos.

  1. Configure el 'fetch' para obtener la rama de la que originalmente sacó.

  2. Busca la rama remota.

  3. Combina esa rama remota con tu rama local.

  4. Confirma el cambio (fusionar) en tu repositorio local.

  5. Empuje el cambio al repositorio remoto.

En detalle...

  1. En eclipse, abre la vista 'Repositorios Git'.

  2. Asegúrese de ver su repositorio local y puede ver el repositorio remoto como una subcarpeta. En mi versión, se llama Controles remotos, y luego puedo ver el proyecto remoto dentro de eso.

  3. Busque la flecha verde que apunta a la izquierda, esta es la flecha 'fetch'. Haga clic derecho y seleccione 'Configurar Fetch'.

  4. Debería ver el URI, asegúrese de que apunta al repositorio remoto.

  5. Buscar en el ref mappings sección de la ventana emergente. El mío estaba vacío. Esto indicará qué referencias remotas desea obtener. Haga clic en 'Añadir'.

  6. Escriba el nombre de la rama que necesita obtener del repositorio remoto. El mío era ' maestro '(por cierto, un menú desplegable aquí sería genial!! por ahora , tienes que escribirlo). Continúe a través de la ventana emergente, eventualmente haciendo clic en 'Finalizar'.

  7. Haga Clic en "Guardar y Recuperar'. Esto buscará esa referencia remota.

  8. Buscar en las "Ramas" carpeta de su repositorio local. Ahora debería ver esa rama remota en la carpeta remota. De nuevo, veo 'maestro'.

  9. Haga clic derecho en la rama local en la carpeta 'Local' de 'Branches', que se llama 'master'. Seleccione 'Merge', y luego seleccione la rama remota, que se llama'origin/master'.

  10. Proceso a través de la fusión.

  11. Confirme cualquier cambio en su repositorio local.

  12. Envía los cambios al control remoto repositorio.

  13. Ve a tomar una bebida sabrosa, felicitándote. Tome el resto del día libre.

 200
Author: Robert Bender,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-09 07:36:18

En mi caso, elegí la casilla de verificación Force Update mientras presionaba. Funcionó a las mil maravillas.

 9
Author: BSeitkazin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-26 09:50:37

Mientras tanto (mientras actualizaba su proyecto), se han realizado otras confirmaciones en la rama 'master'. Por lo tanto, primero debe tirar de esos cambios para poder empujar sus cambios.

 8
Author: afk5min,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-20 05:40:26

Aplicable para Eclipse Luna + Eclipse Git 3.6.1

I,

  1. repositorio git clonado
  2. hecho algunos cambios en el código fuente
  3. cambios escalonados desde la vista Git Staging
  4. finalmente, commit y Push!

Y me enfrenté a este problema con EGit y aquí es cómo lo arreglé..

Sí, alguien cometió los cambios antes de que yo cometa mis cambios. Así que los cambios son rechazados. Después de este error, los cambios se confirman al repositorio local. No quería simplemente Pull los cambios porque quería mantener linear history como se señala en - En qué casos podría `git pull` ser perjudicial?

Entonces, ejecuté los siguientes pasos

  1. desde la perspectiva del repositorio Git, haga clic derecho en el Git
    proyecto
  2. select Fetch from Upstream - obtiene actualizaciones remotas (refs y objetos) pero no se realizan actualizaciones localmente. para obtener más información, consulte ¿Cuál es la diferencia entre 'git pull' y ' git buscar"?
  3. seleccione Rebase... - esto abre una ventana emergente, haga clic en Preserve merges during rebase ver por qué
    ¿Qué hace exactamente "rebase preserve preserve-merges" de git (y por qué?)
  4. haga clic en Rebase button
  5. si hay / hay un conflict(s), vaya al paso 6 else paso 11
  6. aparecerá una ventana emergente Rebase Result, simplemente haga clic en OK
  7. file comparator se abriría, necesita modificar left side file.
  8. una vez que haya terminado de combinar los cambios correctamente, vaya a Git Staging ver
  9. stage the changes. i. e. add to index
  10. en la misma vista, haga clic en Rebase-> Continue. repita de 7 a 10 hasta que se resuelvan todos los conflictos.
  11. desde la vista History, seleccione su fila de confirmación y seleccione Push Commit
  12. seleccione la casilla Rebase Commits of local....... y haga clic en siguiente. refer why - Git: rebase en la rama de desarrollo desde upstream
  13. haga clic en Finish

Nota: si tiene varias confirmaciones de repositorio local, debe aplastarlas en una confirmación para evitar varias fusiones.

 6
Author: Yogesh Manware,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:06

Abrir la vista git:

1-seleccione su proyecto y elija fusionar 2-Seleccionar seguimiento remoto 3-haga clic en aceptar

Git fusionará la rama remota con el repositorio local

4-luego presione

 3
Author: dafali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-20 20:06:55

He encontrado que debes estar en la última confirmación del git. Así que estos son los pasos a seguir: 1) asegúrese de que no ha estado trabajando en los mismos archivos, de lo contrario se encontrará con un error DITY_WORK_TREE. 2) tire de los últimos cambios. 3) confirma tus actualizaciones.

Espero que esto ayude.

 0
Author: Minegeek360,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-25 17:58:29
  1. Entra en Github y crea un repositorio para tu nuevo código.
  2. Use la nueva url https o ssh en Eclise cuando esté haciendo el push a upstream;
 0
Author: adrian filipescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-23 09:15:56

Este error significa que el repositorio remoto ha tenido otras confirmaciones y se ha adelantado a su rama local.
Intento hacer un git pull seguido de un git push. Si no hay cambios conflictivos, git pull recibe el código más reciente en mi rama local mientras mantiene mis cambios intactos.
A continuación, un git push empuja mis cambios a la rama master.

 0
Author: Pushkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-05 07:47:21