rebase in progress. Cannot commit. How to proceed or stop (abort)?
Solution 1
Rebase doesn't happen in the background. "rebase in progress" means that you started a rebase, and the rebase got interrupted because of conflict. You have to resume the rebase
(git rebase --continue
) or abort it (git rebase --abort
).
As the error message from git rebase --continue
suggests, you asked git to apply a patch that results in an empty patch. Most likely, this means the patch was already applied and you want to drop it using git rebase --skip
.
Solution 2
If git rebase --abort
doesnt work and you still get
error: could not read '.git/rebase-apply/head-name': No such file or directory
Type:
git rebase --quit
Solution 3
-
Step 1: Keep going
git rebase --continue
-
Step 2: fix CONFLICTS then
git add .
-
Back to step 1, now if it says
no changes ..
then rungit rebase --skip
and go back to step 1 -
If you just want to quit rebase run
git rebase --abort
-
Once all changes are done run
git commit -m "rebase complete"
and you are done.
Note: If you don't know what's going on and just want to go back to where the repo was, then just do:
git rebase --abort
Read about rebase: git-rebase doc
Solution 4
I got stuck in 'rebase status', I got
On branch master
Your branch is up to date with 'origin/master'.
You are currently rebasing.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working tree clean
but running git rebase --skip
yielded error: could not read '.git/rebase-apply/head-name': No such file or directory
.
Running rm -fr ".git/rebase-apply"
helped.
Note: of course, do it only if you don't care about the rebase or if you're stuck on a previous rebase you don't want anymore.
Solution 5
I got into this state recently. After resolving conflicts during a rebase, I committed my changes, rather than running git rebase --continue
. This yields the same messages you saw when you ran your git status
and git rebase --continue
commands. I resolved the issue by running git rebase --abort
, and then re-running the rebase. One could likely also skip the rebase, but I wasn't sure what state that would leave me in.
$ 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
Related videos on Youtube
Comments
-
Joseph Chambers almost 2 years
When I run:
git status
I see this:
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
When I do:
ls `git rev-parse --git-dir` | grep rebase || echo no rebase
I see: rebase-apply
I can't commit to origin.
git branch
Shows:
* (no branch, rebasing master) develop master
I'm stuck. I don't know what to do? Does it really take this long to rebase?
git rebase --continue
doesn't do anything. I don't have anything in git status.. I'm just waiting for the rebase. What can I do?UDATE: This is the output of: 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 add . has nothing.
-
Joseph Chambers about 9 yearsI updated the post to include git rebase --continue per your request.
-
Matthieu Moy about 9 yearsOK, then "it rebase --continue doesn't do anything" was inaccurate. You should have written "git rebase --continue errors out as follows ..." to get help.
-
Jean-Paul about 8 yearsThe documentation of this very badly, it keeps repeating that you 'git rebase --continue' and you will end up in an infinite way of saying that.
-
VonC over 7 years
-
Borzh over 6 yearsgit rebase --skip did it!
-
DCX over 6 yearsAs this is a question for relative beginners (like me) i thought its worth mentioning all this talk of run this or that - requires opening a new terminal and going back into the repo...nothing would run in my instance of this issue without doing that,
-
Marnen Laibow-Koser about 6 years“Otherwise, it automatically merges when you switch between branches” — Um, no. Git doesn’t do any sort of merge or rebase when you switch branches.
autosetupmerge
has to do with howgit pull
is configured for new branches. -
Alexis Wilke about 6 yearsAt this time when I was fighting with that problem, it sure did some kind of merging of various code. My current setup seems to skip on that problem. There is also the problem of not having done a commit + push of your current branch before trying to switch.
-
Marnen Laibow-Koser about 6 yearsGit will tell you if your uncommitted changes would prevent switching branches, so there’s not much to worry about there, is there? Or are you talking about something else?
-
Alexis Wilke almost 5 yearsI never do a
git rebase/pull --rebase master
. I often end up in this state... because of a conflict. I change a file, do a pull, restore my changes and the new patch is empty which hurts git's brain which then decides to enter this "rebase mode"... -
Jin almost 5 yearsAfter fix the conflicts. then call git commit. do some other job, then call git commit again. If use this method git rebase --abort, all the work you are doing after commit conflict will be wished away. So be careful
-
Green over 4 years
git rebase --continue
does not work. It does not continue anything. State remains the samerebase in progress; onto ab262ab0
-
Matthieu Moy over 4 yearsWhat exact error message do you get? Probably worth a separate question with details actually.
-
Alexis Wilke almost 4 yearsThe
--continue
didn't work, it told me nothing changed... Once I did a--skip
, though, I could justpush
. I just don't understand that stuff. It's like each time I do totally random things until it works. -
Ani Menon almost 4 years@AlexisWilke Yes, you have to do a
--skip
when there are no changes so that you can continue rebase on the next commit from the main branch. What is actually happening is you are replaying all your changes (in current branch) on to the main branch so that you are upto date with the main branch and also have your changes placed after that. Go through: git-scm rebasing (go through only The Basic Rebase from the link and you should get a good idea on what is going on). -
Bas over 2 yearsThank you! This was exactly my problem.