rebase in progress. Cannot commit. How to proceed or stop (abort)?

278,134

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 run git 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
Share:
278,134

Related videos on Youtube

Joseph Chambers
Author by

Joseph Chambers

For Fun: Developer. Focusing on MERN stack.

Updated on July 08, 2022

Comments

  • Joseph Chambers
    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
    Joseph Chambers about 9 years
    I updated the post to include git rebase --continue per your request.
  • Matthieu Moy
    Matthieu Moy about 9 years
    OK, 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
    Jean-Paul about 8 years
    The 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
    VonC over 7 years
    In addition of --abort (+1), you now have --quit (stackoverflow.com/a/41363262/6309)
  • Borzh
    Borzh over 6 years
    git rebase --skip did it!
  • DCX
    DCX over 6 years
    As 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
    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 how git pull is configured for new branches.
  • Alexis Wilke
    Alexis Wilke about 6 years
    At 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
    Marnen Laibow-Koser about 6 years
    Git 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
    Alexis Wilke almost 5 years
    I 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
    Jin almost 5 years
    After 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
    Green over 4 years
    git rebase --continue does not work. It does not continue anything. State remains the same rebase in progress; onto ab262ab0
  • Matthieu Moy
    Matthieu Moy over 4 years
    What exact error message do you get? Probably worth a separate question with details actually.
  • Alexis Wilke
    Alexis Wilke almost 4 years
    The --continue didn't work, it told me nothing changed... Once I did a --skip, though, I could just push. I just don't understand that stuff. It's like each time I do totally random things until it works.
  • Ani Menon
    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
    Bas over 2 years
    Thank you! This was exactly my problem.