CLI tool for making life with git and GitHub easier.
Requires the GitHub CLI to be installed and authenticated.
- Install GitHub CLI: https://github.com/cli/cli#installation
- Authenticate GitHub CLI:
gh auth login
- Install this package (probably globally):
npm i -g git-vir
Use this instead of git push
when you have a chain of several PRs that are targeting each other and they all need to be updated after the base PR is updated.
- Start with the base-most branch (the branch closest to your main dev branch) that needs to be updated.
- Make the necessary changes to that branch (rebase, commit amend, etc.).
- Run
git-vir push
.- If you use a remote name besides
origin
, you can provide that as well withgit-vir <remote-name-here> push
. - If you encounter merge conflicts, resolve them as you would for a normal
git rebase
command. Then, rungit-vir push
to resume updating the chain.
- If you use a remote name besides
- Don't do anything else in the repo's directory until the command is finished.
- The git-vir command will checkout and push all dependent branches, recursively.
- If you do anything with the repo while this is happening, it'll likely break this process, including pushing changes to incorrect branches.
Use this on a branch that has a chained PR which is ready for merge. It will merge the branch's PR and then rebase all chained branches.
Make sure to include a merge type: --squash
, --rebase
, or --merge
. Like this:
git-vir merge --squash