git rebase fusionar conflicto

Bifurqué un repo github y trabajé en mi repo github.
Hice requestes de extracción y se completó.

Después de eso, el upstream tuvo más compromisos, así que ahora quiero volver a establecer la base, supongo que eso es lo que tengo que hacer.
Pero estoy obteniendo estos conflictos de fusión:

First, rewinding head to replay your work on top of it... Applying: Issue 135 homepage refresh Using index info to reconstruct a base tree... <stdin>:17: trailing whitespace. %h4 warning: 1 line adds whitespace errors. Falling back to patching base and 3-way merge... Auto-merging app/views/layouts/application.html.haml CONFLICT (content): Merge conflict in app/views/layouts/application.html.haml Auto-merging app/views/home/index.html.haml CONFLICT (content): Merge conflict in app/views/home/index.html.haml Auto-merging app/views/home/_group_projects.html.haml CONFLICT (content): Merge conflict in app/views/home/_group_projects.html.haml Failed to merge in the changes. Patch failed at 0001 Issue 135 homepage refresh When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To check out the original branch and stop rebasing run "git rebase --abort". 

No sé cómo solucionar esto, por favor ayuda.

Rebasar puede ser un verdadero dolor de cabeza. Tienes que resolver los conflictos de fusión y continuar con el rebase. Por ejemplo, puede usar la herramienta de combinación (que varía según su configuration)

 git mergetool 

A continuación, agregue y confirme sus cambios y continúe

 git rebase --continue 

Buena suerte

Cuando tienes un conflicto durante la rebase, tienes tres opciones:

  • Puede ejecutar git rebase --abort para deshacer completamente la rebase. Git te devolverá al estado de tu sucursal como estaba antes de que se llamara a git rebase.

  • Puede ejecutar git rebase --skip para omitir completamente la confirmación. Eso significa que ninguno de los cambios introducidos por la confirmación problemática se includeá. Es muy raro que elija esta opción.

  • Puedes arreglar el conflicto como dijo iltempo. Cuando hayas terminado, deberás llamar a git rebase --continue . Mi mergetool es kdiff3 pero hay muchos más que puedes usar para resolver conflictos. Solo necesita configurar su herramienta de fusión en la configuration de git para que pueda invocarse cuando llame a git mergetool https://git-scm.com/docs/git-mergetool

Si ninguno de los anteriores funciona para usted, salga a caminar y vuelva a intentarlo 🙂

Nota: con Git 2.14.x / 2.15 (Q3 2017), el post de git rebase en caso de conflictos será más claro.

Ver commit 5fdacc1 (16 de julio de 2017) por William Duclot ( williamdclt ) .
(Fusionada por Junio ​​C Hamano – gitster – in commit 076eeec , 11 de agosto de 2017)

rebase : hacer que el post de resolución sea más claro para usuarios inexpertos

Antes de:

 When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort" 

Después:

 Resolve all conflicts manually, mark them as resolved with git add/rm <conflicted_files> then run "git rebase --continue". You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort".') 

La interfaz de usuario de git se puede mejorar dirigiendo los posts de error a aquellos a los que ayudan: usuarios de git inexpertos e informales.
Con este propósito, es útil asegurarse de que los términos utilizados en esos posts puedan ser comprendidos por este segmento de usuarios y que los guíen a resolver el problema.

En particular, la falla al aplicar un parche durante una rebase de git es un problema común que puede ser muy desestabilizador para el usuario inexperto.
Es importante guiarlos hacia la resolución del conflicto (que es un process de 3 pasos, por lo tanto complejo) y tranquilizarlos de que pueden escaping de una situación que no pueden manejar con " --abort ".
Esto confirma esos dos puntos al detallar el process de resolución y al evitar el crit git linguo.