Git rebase –continue vede ancora conflitti, git status mi dice che non ce ne sono

sto eseguendo una rebase abbastanza complessa che era andata bene per le ultime commit. ho fissato un conflitto molto piccolo e in qualche modo bloccato nel limbo —

    ╰─$ git status
rebase in progress; onto 99e642b
You are currently rebasing branch 'Vince_issue_157' on '99e642b'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

    ╰─$ git rebase --continue Applying: RM debugger No changes - did you forget to use git add?

non dovrebbero essere queste due contraddizioni? come posso capire cosa piace a git doesnt?


rapido output reflog se questo solleva eventuali bandiere rosse

dc04ac4 (HEAD) HEAD@{0}: rebase: improve warning
f97482a HEAD@<pre><code>    ╰─$ git status
rebase in progress; onto 99e642b
You are currently rebasing branch 'Vince_issue_157' on '99e642b'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

    ╰─$ git rebase --continue Applying: RM debugger No changes - did you forget to use git add?
: rebase: incomplete test for new warning
e73be23 HEAD@
dc04ac4 (HEAD) HEAD@{0}: rebase: improve warning
f97482a HEAD@{1}: rebase: incomplete test for new warning
e73be23 HEAD@{2}: rebase: warning (that needs tweak) on default lang with no translation problem
99e642b (upstream/master, master) HEAD@{3}: rebase: checkout master
5d8b393 (origin/Vince_issue_157, Vince_issue_157) HEAD@{4}: checkout: moving from master to Vince_issue_157
99e642b (upstream/master, master) HEAD@{5}: reset: moving to upstream/master
: rebase: warning (that needs tweak) on default lang with no translation problem
99e642b (upstream/master, master) HEAD@{3}: rebase: checkout master
5d8b393 (origin/Vince_issue_157, Vince_issue_157) HEAD@{4}: checkout: moving from master to Vince_issue_157
99e642b (upstream/master, master) HEAD@{5}: reset: moving to upstream/master

EN From: git rebase –continue still sees conflicts, git status tells me there are none

More similar articles:

4 Comments

  1. penso che il problema sia che non ci siano cambiamenti da applicare per questa revisione. probabilmente si vuole fare git rebase --skip

  2. ricapitolazione rapida: i conflitti si sono verificati mentre Git cercava di copiare un commit esistente il cui oggetto è:

    RM debugger

    cioè, durante git rebase, che funziona copiando una serie di commit su commit nuovi e migliorati che fanno la stessa cosa degli originali tranne che per qualche miglioramento (ad esempio, essendo su un diverso commit di base iniziale), Git ha provato a copiare quel commit, ed ha alcuni conflitti di fusione. così rebase fermato con RM debugger non ancora applicato.

    hai poi fatto qualche lavoro nel tuo index-and-work-tree per risolvere questi conflitti, tra cui git add alla fine. poi si è eseguito git rebase --continue.

    questo messaggio:

    { 2 }

    non significa che ci siano conflitti. significa che il codice sorgente nel tuo indice ora, pronto per essere commesso come la nuova e migliorata copia di RM debugger, è esattamente lo stesso del codice sorgente nel tuo commit esistente dc04ac4 (improve warning), che di per sé è una copia di qualche vecchio commit il cui oggetto era già improve warning.

    Git non ama fare commit che ripetano lo stesso codice sorgente. (Git chiama questi commit vuoti, anche se non sono vuoti, sono solo ripetizioni immediate.) non piace tanto questo che git rebase si rifiuta di farlo per impostazione predefinita, anche dopo aver risolto eventuali conflitti.

    questo a volte è un segno che hai risolto il conflitto nel modo sbagliato: che accidentalmente caduto il cambiamento. ma forse questa è la cosa giusta da fare.

    se la cosa corretta da fare a questo punto è far cadere completamente la commit originale – se non c’è nessuna modifica ora necessaria perché la nuova base per le nuove commit migliorate non ha bisogno di alcun fissaggio – esegui:

    git rebase --skip

    per dire a Git: questo commit non dovrebbe essere copiato dopo tutto.

    se si vuole veramente la commit vuota, si può manualmente commit da soli, utilizzando git commit --allow-empty, quindi utilizzare git rebase --continue per procedere.

  3. “come posso capire cosa piace a git doesnt?” beh, potresti aver bisogno di aggiungere un po ‘di più della tua comprensione della situazione perché Git ha dato il messaggio che ci sono * “Nessun cambiamento” (niente di modificato / aggiunto / rimosso / in conflitto e nemmeno sconosciuto / altro) quindi non c’è niente da fare (quindi salta il commit in quella base dopo la risoluzione del merge [questo è comune] o fai un commit vuoto [molto spesso inutile, vedi --allow-empty per git commit]. Git sta solo cercando di dirti che non ci sono cambiamenti per il commit che stai cercando di fare (ribasandoti dopo la risoluzione dei conflitti). vedere anche git rerere.

Leave a Reply

Your email address will not be published. Required fields are marked *