Skip to main content

Rebase multiple branches at once

Project description

git-rebase-branches

Rebase multiple branches at once.


Say I have a number of feature branches, and new commits are added to main:

dmtucker@localhost:/tmp/tmp.97ZHC4YUiK $ git branch -vv
  feature1 2511789 Add feature #1
  feature2 339ff60 Make fizz do buzz
* feature3 618d195 Improve thing greatly
  main     77bf560 New commits to main!

My feature branches are no longer based on main and all need to be rebased:

dmtucker@localhost:/tmp/tmp.97ZHC4YUiK $ git log --graph feature1 feature2 feature3 main
* 618d195 (HEAD -> feature3) Improve thing greatly
| * 339ff60 (feature2) Make fizz do buzz
|/
| * 2511789 (feature1) Add feature #1
|/
| * 77bf560 (main) New commits to main!
|/
* cd9b6c6 Initial commit

git-rebase-branches can help with that:

dmtucker@localhost:/tmp/tmp.97ZHC4YUiK $ git-rebase-branches main
$ git for-each-ref --no-contains main '--format=%(refname:short)' refs/heads/
feature1
feature2
feature3
$ git stash push --include-untracked
No local changes to save
$ git log -n1
618d195 (HEAD -> feature3) Improve thing greatly
$ git rebase main feature1
Successfully rebased and updated refs/heads/feature1.
$ git rebase main feature2
Successfully rebased and updated refs/heads/feature2.
$ git rebase main feature3
Successfully rebased and updated refs/heads/feature3.
$ git -c advice.detachedHead=false checkout feature3
Already on 'feature3'

==================================== SUMMARY ====================================
- feature1 (succeeded)
- feature2 (succeeded)
- feature3 (succeeded)
  • Note: Once you run the first command, git-rebase-branches prints and runs the rest.

Now, all feature branches are based on main:

dmtucker@localhost:/tmp/tmp.97ZHC4YUiK $ git log --graph feature1 feature2 feature3 main
* 069fcca (HEAD -> feature3) Improve thing greatly
| * e32b491 (feature1) Add feature #1
|/
| * 8fffd21 (feature2) Make fizz do buzz
|/
* 77bf560 (main) New commits to main!
* cd9b6c6 Initial commit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_rebase_branches-2.0.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_rebase_branches-2.0.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file git_rebase_branches-2.0.1.tar.gz.

File metadata

  • Download URL: git_rebase_branches-2.0.1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for git_rebase_branches-2.0.1.tar.gz
Algorithm Hash digest
SHA256 fd7e44adf5065a614e982cd2dd3b57808880adc9881396771b11c70411b7078e
MD5 c0eb9477c3a96f517c0fef11b9a1c38a
BLAKE2b-256 c235de7e06017a6970961abb5517c3ea7bf08edf68f6699107850f4ea983a443

See more details on using hashes here.

File details

Details for the file git_rebase_branches-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for git_rebase_branches-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1ddff8e696879931e9327849d401829a40ba5fdc62118186a8010d3eeb412bf9
MD5 fc51b474549fa060dc7f0a178f67bda2
BLAKE2b-256 d82588e168fd532360ad9772bd676fa3d60d989eeeab61cc7c9feb6800f5b2a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page