Kit Sunde
Kit Sunde

Reputation: 37065

How can I see how much I have remaining of a rebase?

How can I see how much work is left on a rebase while it's in progress?

I.e. I want to see how much work git has left to check.

Upvotes: 38

Views: 10456

Answers (6)

Mesco
Mesco

Reputation: 1393

git status

Example content:

On branch xxx
Your branch and 'origin/xxx' have diverged,
and have 4 and 7 different commits each, respectively.
  (use "git pull" if you want to integrate the remote branch with yours)

No commands done.
Next commands to do (5 remaining commands):
   pick d33eb3d Add 3ds not performed case -
   edit c58cad6 Refactor extract method to update models
  (use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'xxx' on '18cc67c'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)

nothing to commit, working tree clean

Upvotes: 1

Sérgio
Sérgio

Reputation: 7249

I think you are looking for

git rebase --edit-todo

Upvotes: 1

awvalenti
awvalenti

Reputation: 2013

If you just want to take a look at it and you're using Bash, you can run: __git_ps1. It will display something similar to (feature/avarias|MERGING)(base), but concerning rebase. This string is meant to compose your prompt by assigning it to variable PS1.

Upvotes: 0

Victor Yarema
Victor Yarema

Reputation: 1325

Starting with git version 2.26

Here's the shell command that prints the rebase progress:

( RMD="$( git rev-parse --git-path 'rebase-merge/' )" && N=$( cat "${RMD}msgnum" ) && L=$( cat "${RMD}end" ) && echo "${N} / ${L}" ; )

Sample output will be like

4 / 7

You can modify the last echo command parameter to print it using the format you like.

For git with versions that are <= 2.25

( RaD="$( git rev-parse --git-path 'rebase-apply/' )" && N=$( cat "${RaD}next" ) && L=$( cat "${RaD}last" ) && echo "${N} / ${L}" ; )

Upvotes: 26

Matt Vukomanovic
Matt Vukomanovic

Reputation: 1440

You are probably looking for this information for a normal rebase instead of an interactive rebase.

That information isn't shown for non interactive rebases. However you can find it out by looking in your rebase-apply directory.

In that directory there is all the information you need. Specifically if you are running with the default .git directory location you can find it out by running these commands

cat .git/rebase-apply/next
cat .git/rebase-apply/last

If you want to know the commit which is currently being applied then you can use the following

cat .git/rebase-apply/original-commit

And if you want to see the actual patches which are being applied then you can look at the numbered files in .git/rebase-apply

Upvotes: 20

sschuberth
sschuberth

Reputation: 29801

If you're using git-prompt.sh, your prompt will show something like |REBASE-i (x/y) when resolving a conflict during an interactive rebase, where x is rebase step out of y where the conflict occurred.

Upvotes: 4

Related Questions