fataal: kon het bestand .git/rebase-merge/done voor lezen niet openen: zo’n bestand of map bestaat niet

Ik was van plan om een ​​rebase te doen om mijn laatste commit te verwijderen, maar ik wilde het niet afmaken, dus verliet ik het. (Ik realiseer me dat dit waarschijnlijk niet de beste manier was om het aan te pakken, maar het is gedaan) Ik denk dat ik het verkeerd heb gedaan omdat ik de foutmelding krijg: fatal: Could not open file .git/rebase-merge/done for reading: No such file or directoryelke keer als ik git statusuitvoer. Hoe kom ik van deze fout af, zodat ik door kan gaan met het maken van commits? Kan ik het bestand gewoon verwijderen? Als ik het kan verwijderen, hoe zou ik dat dan doen?


Antwoord 1, autoriteit 100%

Voordat u het volgende probeert, moet u eerst alle niet-vastgelegde wijzigingen stashof commit, anders raakt u ze onherroepelijk kwijt.

Probeer dan een git rebase --abortuit te voeren.


Antwoord 2, autoriteit 21%

Stash of commit werkte niet voor mij, ik heb net de bestanden gemaakt waar Git over klaagde totdat het werkte!

$ git rebase --abort
error: could not read '.git/rebase-apply/head-name': No such file or directory
echo "master" > .git/rebase-apply/head-name
$ git rebase --abort
error: could not read '.git/rebase-apply/onto': No such file or directory
$ echo "develop" > .git/rebase-apply/onto
$ git rebase --abort
error: could not read '.git/rebase-apply/head': No such file or directory
$ echo "develop" > .git/rebase-apply/head

Waarna git rebase --abortwerkte. De branchnamen die je in die bestanden plaatst, moeten bestaan, en in mijn geval gaf ik niet om mijn lokale wijzigingen, maar wees hier natuurlijk voorzichtig mee als je dat doet.


Antwoord 3, autoriteit 5%

DavidN’s oplossing om de rebase af te breken is geweldigzolang je geen niet-gefaseerdewijzigingen hebt aangebracht sinds de laatste rebase naar het zuiden gaat!

Als je code hebt geschreven na de rebase-poging en het negeren van het bericht could not open file .git/rebase-merge/doneniet openen,

dan kun je het beste doen

git stash

om uw lokale wijzigingen op te slaan en pas daarna de rebase te annuleren.

Ik ben er zeker van dat dit een van die stackoverflow-vragen is, waarbij mensen die graag hun probleem willen oplossen zonder na te denken over de implicaties, gewoon het commando voor afbreken uitvoeren en er kort daarna spijt van krijgen.


Antwoord 4

Ik heb zojuist gedaan:

git add .
git commit -m "change inter rebase"

en dan verder kunnen gaan:

git rebase --continue

Nee

git stash 
git rebase --abort 

nodig.


Antwoord 5

Voor iemand die dit vanuit Visual Studio Code doet, sluit de actieve terminal/shell en voer dan git rebase --quit

uit

Als u dit doet, wordt het probleem opgelost.

Other episodes