
Security News
GitHub Actions Checkout Now Blocks Risky pull_request_target Checkouts
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.
git-stack-cli
Advanced tools
- ✨ **[Stacked diffs](https://graphite.dev/guides/stacked-diffs) for `git`** - 🚀 **Simple one-branch workflow** - 🎯 **Interactively select commits for each pull request** - 💬 **Group commits for focused code review** - 🌐 **Use the [official GitHub CLI
git# node
npm i -g git-stack-cli
# homebrew
brew tap magus/git-stack
brew install git-stack
git stack
git stack --verbose # print more detailed logs for debugging internals
git stack --no-verify # skip git hooks such as pre-commit and pre-push
git-stack --help # print a table of all command-line arguments
The goal of git stack is to combine the simplicity of developing in a single branch in order to preserve your commit history while also grouping commits into pull requests for code review.
Often pushing all your commits to a single pull request is the simplest and fastest approach to development. This comes at a price, your teammates have to review larger, less related pieces of code and you will lose some of your atomic commit history if you "Squash and merge".
When you decide to break changes up into multiple diffs that depend on one another this process is commonly referred to as stacked diffs (pull requests that depend on other pull requests).
This appraoch is popular at many major comparnies such as Twitter, Facebook, etc.
Managing stacked diffs manually involves managing multiple local branches, jumping between them, rebasing, etc.
This process gets even more complicated when you start getting feedback in code review and have to update individual branches.
Managing even a few stacked diffs requires a relatively strong knowledge of git, even with tricks like --update-refs.
xghstackgit stack automatically synchronizes each pull request in your stack, as neededgit stack does not create local branches (instead it annotates commits locally with metadata to denote groups of commits, e.g. git-stack-id: E63ytp5dj)ghstack requires rebasing and squashing since each commit creates a pull request, which means you lose commit historygit stack allows developing in a single local branch and selecting groups of commits for each pull requestgit stack adds a clear comment to each pull request in the stack showing the entire stackgit stack does not break if you land pull requests through Github directly, ghstack requires landing from the command-line interfacegit stack uses the official GitHub CLI (gh) instead of personal access tokensgit submodule update --init --recursive
npm i
npm run dev
npm link
# navigate to project to test within
npm link git-stack-cli
git stack --verbose
npm run build:standalone
[!IMPORTANT]
You must update the
versioninpackage.jsonand commit all changes first!
npm run release:npm
npm run release:brew
FAQs
Unknown package
The npm package git-stack-cli receives a total of 200 weekly downloads. As such, git-stack-cli popularity was classified as not popular.
We found that git-stack-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.