git-spice is a tool for stacking Git branches. It lets you manage and navigate stacks of branches, conveniently modify and rebase them, and create GitHub Pull Requests from them.
See https://abhinav.github.io/git-spice/ for more details.
Usage looks roughly like this:
# Stack a branch on top of the current branch.
$ gs branch create feat1
# Stack aonther branch on top of feat1.
$ gs branch create feat2
# Submit pull requests for feat1 and feat2.
$ gs stack submit
# Pull latest changes from the remote repository
# and delete merged branches.
$ gs repo sync
# Restack branches on top of the latest changes.
$ gs stack restack
Or equivalently, using CLI shorthands:
$ gs bc feat1 # branch create feat1
$ gs bc feat2 # branch create feat2
$ gs ss # stack submit
$ gs rs # repo sync
$ gs sr # stack restack
- Create, edit, and navigate stacks of branches with ease.
- Create and update GitHub Pull Requests for the entire stack or parts of it with a single command.
- Keep using your existing workflow and adopt git-spice incrementally.
- Completely offline operation with no external dependencies until you push or pull from a remote repository.
- Easy-to-remember shorthands for most commands.
See https://abhinav.github.io/git-spice/ for the full documentation.
This software is distributed under the GPL-3.0 License:
git-spice: Stacked Pull Requests
Copyright (C) 2024 Abhinav Gupta
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
See LICENSE for details.