Bifurqué un repositorio de github y trabajé en mi repositorio de github.
Hice solicitudes de extracción y se completó.
Después de eso, el upstream tuvo más confirmaciones, así que ahora quiero cambiar la base, supongo que eso es lo que tengo que hacer.
Pero tengo 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 solucionarlos, por favor ayuda.
git
github
git-rebase
pahnin
fuente
fuente
Respuestas:
Rebasar puede ser un verdadero dolor de cabeza. Tienes que resolver los conflictos de fusión y continuar reajustando. Por ejemplo, puede utilizar la herramienta de combinación (que difiere según su configuración)
Luego agrega tus cambios y continúa
Buena suerte
fuente
Cuando tiene un conflicto durante el rebase, tiene tres opciones:
Puede ejecutar
git rebase --abort
para deshacer completamente el rebase. Git lo devolverá al estado de su rama como estaba antes de que se llamara a git rebase.Puede ejecutar
git rebase --skip
para omitir completamente la confirmación. Eso significa que no se incluirá ninguno de los cambios introducidos por la confirmación problemática. Es muy raro que elija esta opción.Puedes arreglar el conflicto como dijo iltempo. Cuando haya terminado, deberá llamar
git rebase --continue
. Mi mergetool es kdiff3 pero hay muchas más que puede utilizar para resolver conflictos. Solo necesita configurar su herramienta de combinación en la configuración de git para que se pueda invocar cuando llame agit mergetool
https://git-scm.com/docs/git-mergetoolSi nada de lo anterior le funciona, salga a caminar y vuelva a intentarlo :)
fuente
<<<<<
Si tiene muchos compromisos para reajustar, y alguna parte de ellos está dando conflictos, eso realmente duele. Pero puedo sugerir un enfoque menos conocido sobre cómo "aplastar todos los conflictos".
Primero, verifique la rama temporal y comience la combinación estándar
Tendrás que resolver los conflictos, pero solo una vez y solo los reales. Luego, configure todos los archivos y termine de fusionar.
Luego regrese a su rama (que sea alfa ) y comience a rebase, pero con la resolución automática de cualquier conflicto.
Se ha modificado la base de la rama, pero es probable que el proyecto esté en un estado no válido. Está bien, tenemos un paso final. Solo necesitamos restaurar el estado del proyecto, por lo que será exacto como en la rama 'temp'. Técnicamente, solo necesitamos copiar su árbol (estado de carpeta) mediante el comando de bajo nivel git commit-tree . Además, la fusión en la rama actual acaba de crear la confirmación.
Y eliminar rama temporal
Eso es todo. Hicimos un rebase mediante fusión oculta.
También escribí un guión, para que se pueda hacer en forma de diálogo, lo puedes encontrar aquí .
fuente
Nota: con Git 2.14.x / 2.15 (Q3 2017), el
git rebase
mensaje en caso de conflictos será más claro.Consulte la confirmación 5fdacc1 (16 de julio de 2017) de William Duclot (
williamdclt
) .(Combinado por Junio C Hamano -
gitster
- en el compromiso 076eeec , 11 de agosto de 2017)Antes de:
Después:
fuente