git - Rabatt läuft. Kann nicht festschreiben. Wie kann ich fortfahren oder anhalten(abbrechen)?



git rebase interactive (5)

Wenn ich renne:

git status

Ich sehe es:

rebase in progress; onto 9c168a5
You are currently rebasing branch 'master' on '9c168a5'.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working directory clean

Wenn ich mache:

ls `git rev-parse --git-dir` | grep rebase || echo no rebase

Ich sehe: Rebase-Apply

Ich kann mich nicht auf die Herkunft festlegen.

git branch

Zeigt an:

* (no branch, rebasing master)
  develop
  master

Ich stecke fest. Ich weiß nicht was ich tun soll? Dauert das Zurücksetzen wirklich so lange? git rebase --continue macht nichts. Ich habe noch nichts im Git-Status. Ich warte nur auf den Rebase. Was kann ich machen?

UDATE: Dies ist die Ausgabe von: git rebase --continue

Applying: no message
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".

Git hinzufügen. hat nichts.

https://ffff65535.com


Eine weitere Option zum Abbrechen / Überspringen / Fortfahren von IDE

VCS> Git> Rebasing abbrechen


Ich richte mein git , dass es an einer git checkout automatisch basiert

# in my ~/.gitconfig file
[branch]
    autosetupmerge = always
    autosetuprebase = always

Andernfalls wird es automatisch zusammengeführt, wenn Sie zwischen Zweigen wechseln, was meiner Meinung nach die schlechtestmögliche Wahl als Standard ist.

Dies hat jedoch einen Nebeneffekt, wenn ich zu einem Zweig git cherry-pick <commit-id> und dann git cherry-pick <commit-id> ich jedes Mal in diesem seltsamen Zustand, wenn es einen Konflikt gibt.

Eigentlich muss ich die rebase abbrechen, aber zuerst rebase ich den Konflikt, git add /path/to/file the file (eine andere sehr seltsame Methode, um den Konflikt in diesem Fall zu lösen ?!), dann mache ich ein git commit -i /path/to/file . Jetzt kann ich den rebase abbrechen:

git checkout <other-branch>
git cherry-pick <commit-id>
...edit-conflict(s)...
git add path/to/file
git commit -i path/to/file
git rebase --abort
git commit .
git push --force origin <other-branch>

Das zweite git commit . scheint vom abbruch zu kommen. Ich werde meine Antwort rebase wenn ich herausfinde, dass ich die rebase früher abbrechen sollte.

Die --force on the push ist erforderlich, wenn Sie andere --force überspringen und beide Zweige nicht reibungslos sind (bei beiden fehlen Festschreibungen bei den anderen).


Ich bin kürzlich in diesen Zustand gekommen. Nach dem Lösen von Konflikten während einer Rebase habe ich meine Änderungen übernommen, anstatt git rebase --continue . Dies liefert die gleichen Meldungen, die Sie beim git rebase --continue Befehle git status und git rebase --continue . Ich habe das Problem git rebase --abort , indem ich git rebase --abort und dann die Rebase erneut ausgeführt habe. Man könnte wahrscheinlich auch die Basis überspringen, aber ich war mir nicht sicher, in welchem ​​Zustand mich das zurücklassen würde.

$ git rebase --continue
Applying: <commit message>
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".

$ git status
rebase in progress; onto 4df0775
You are currently rebasing branch '<local-branch-name>' on '4df0775'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working directory clean

Neustart findet nicht im Hintergrund statt. "Rebase in Bearbeitung" bedeutet, dass Sie eine Rebase gestartet haben und diese aufgrund eines Konflikts unterbrochen wurde. Sie müssen die Wiederherstellung fortsetzen ( git rebase --continue ) oder abbrechen ( git rebase --abort ).

Wie die Fehlermeldung von git rebase --continue andeutet, haben Sie git gebeten, einen Patch anzuwenden, der zu einem leeren Patch führt. Dies bedeutet höchstwahrscheinlich, dass der Patch bereits angewendet wurde und Sie ihn mit git rebase --skip .


  • Schritt 1: Mach weiter mit git rebase --continue

  • Schritt 2: Beheben Sie die Konflikte und git add .

  • Zurück zu Schritt 1, wenn no changes .. git rebase --skip dann git rebase --skip und fahren Sie mit Schritt 1 fort

  • Wenn Sie nur rebase beenden möchten, führen Sie git rebase --abort

  • Sobald alle Änderungen vorgenommen wurden, führen Sie git commit -m "rebase complete" und Sie sind fertig.





git-rebase