Primarily, replace my use of other tools. So my flow now is:
- Look at all my "tracked" branches easily in some kind tree structure
- Create a new branch off the current branch, add all edited files and push to new branch all in one command
- Quick command to commit all files to current branch
- Switch to a branch I didn't create, start tracking it
- Rebase current branch onto another target branch
- Alias command for
git rebase --continue - Alias command for
git add .(while rebasing but also in general) - Sync command. Takes all tracked branches, rebase them on main. Any branch not branched off main, we rebase onto parent recursively. If a PR for that branch is closed, delete the branch
- Submit a branch straight to GitHub. If it's stacked on something then submit that too.
Only some branches are "tracked". Trying to handle all branches is a bad idea imo and users should opt-in branches explicitly to be handled in this way.
We will keep track of which branches are being handled this way in some system file.
Note: all commands would get abbreviated aliases (i.e. branch hop -> bh)
branch hop- list all branches, not just tracked ones, let's you search with partial string and then menu select a branch to hop to, basically git switch with better search & UIcontinue- basically justgit rebase --continuechanges add- basically justgit add .branch attach- opens a menu to select a branch, rebases your current branch "onto" that chosen branchtrack- start "tracking" current branchchanges commit(idk what to call this) - basicallygit commit -am ""and takes a message argumentbranch new- basicallygit checkout -b [name] && git commit -am ""where the branch name is auto-generated from the commit messagels- view tracked branches in a tree structure visuallyup [number]- go "up" the tree, i.e. to the child of the current branch. Show selection options if multiple children. "number" is the number of levels updown [number]- go "down" the tree, i.e. to parent of current branch. "number" is the number of levels downbranch submit- submit this branch to GitHub, if it's stacked on something make that the target. Option to submit everything in branch of the tree down to the root.
branch hopis basically donechanges add,changes commit,branch new-> should be easy to build, just git aliases basically
The tree, meaning the way we internally store the representation of which branches are stacked on which branches.
sync,up,down,ls,track
branch attach,continue
- Polish
branch hop✅ - Build
changes add✅ - Build
changes commit✅ - Build
branch new✅
This is now v0.
- Build
branch move✅ (Scope creep) -branch delete&branch switch✅ - Build
continue✅
This is now v0.1.X
- Build tree representation. ✅
- Build
track✅ - Build
ls✅ - Build
up&down
This is v0.2.X
- Build GitHub integration to make/track PRs
- Build
branch submit❌
This is v0.3.X
- Build
sync✅ - Build
force push - Build
cleanup
This is v1.