¿Por qué el rebasado desarma mi twig actual y no se completa?

Estoy en la twig b4 y hago "$ git rebase master", me da conflictos.

$ git rebase master First, rewinding head to replay your work on top of it... Applying: rebase: Modified 1.txt Using index info to reconstruct a base tree... M 1.txt Falling back to patching base and 3-way merge... Auto-merging 1.txt CONFLICT (content): Merge conflict in 1.txt Failed to merge in the changes. Patch failed at 0001 rebase: Modified 1.txt The copy of the patch that failed is found in: c:/hands_on/github/learn_git/cmd/.git/rebase-apply/patch 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". 

Aquí, muestra que ya no estoy en la twig b4.

  $ git status # Not currently on any branch. # You are currently rebasing. # (fix conflicts and then run "git rebase --continue") # (use "git rebase --skip" to skip this patch) # (use "git rebase --abort" to check out the original branch) # # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add <file>..." to mark resolution) # # both modified: 1.txt # no changes added to commit (use "git add" and/or "git commit -a") 

Solucioné conflictos y cometí los cambios:

 $ vim 1.txt $ git commit -a -m "Fixed rebase conflict" [detached HEAD 2cb2672] Fixed rebase conflict 1 file changed, 1 insertion(+) $ git status # Not currently on any branch. # You are currently rebasing. # (all conflicts fixed: run "git rebase --continue") # nothing to commit, working directory clean 

Pero cuando intenté "–continuar", no completa la rebase, sino que me da más "instrucciones". ¿Por qué?

 $ git rebase --continue Applying: rebase: Modified 1.txt No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch. 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". 

Solucioné conflictos y cometí los cambios:

Ahí es donde te equivocaste. git rebase --continue espera que los cambios estén en el índice, pero aún no confirmados. Como ya has confirmado los cambios, el git rebase falla, porque no hay cambios git rebase confirmación.

Debería poder deshacer su acción de confirmación, sin restablecer el índice, ejecutando git reset --soft @^ . Y git rebase --continue debería funcionar después de eso.

Alternativamente, puedes usar git rebase --skip para omitir el git rebase de cometer los cambios, pero corre el riesgo de que te git rebase un poco más: es probable que tu propia confirmación no haya respetado el nombre del autor, el correo electrónico y la hora del commit original. .

El hecho de que el git status muestre que no estás en ninguna twig no es un problema. git rebase separa intencionalmente de la twig actual hasta que finaliza la operación. Esto se arreglará después de que las operaciones hayan tenido éxito.