🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

git-stack-cli

Package Overview
Dependencies
Maintainers
1
Versions
127
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

git-stack-cli

- 🚀 **Simple one-branch workflow** - 🎯 **Interactively select commits for each pull request** - 📚 **Preserve your detailed commit history** - ♻️ **Automatically synchronize each pull request in the stack** - 💬 **Group commits for focused code review**

Source
npmnpm
Version
0.7.3
Version published
Weekly downloads
203
136.05%
Maintainers
1
Weekly downloads
 
Created
Source

git-stack-cli

  • 🚀 Simple one-branch workflow
  • 🎯 Interactively select commits for each pull request
  • 📚 Preserve your detailed commit history
  • ♻️ Automatically synchronize each pull request in the stack
  • 💬 Group commits for focused code review
  • 🚫 Avoid mutiple branch juggling and complex rebasing
  • 💪 Work seamlessly with GitHub's interface
  • 🌐 Leverage the official GitHub CLI

Demo

Install

npm i -g git-stack-cli

git stack

Why?

Most developers might not see much reason to preserve commit history or create multiple pull requests of smaller changes. Often pushing all your commits to a single pull request is the simplest and fastest approach to development. However, there is a cost to this, your teammates have to review larger, less related pieces of code and you will lose some of your atomic commit history if you squahs and merge.

Okay, so you decide to break changes up. This process is commonly referred to as stacked diffs (pull requests that depend on other pull requests). Manually this means 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.

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.

How is this different than x

ghstack

  • git stack automatically synchronizes each pull request in your stack, as needed
  • git 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 history
  • git stack allows developing in a single local branch and selecting groups of commits for each pull request
  • git stack adds a clear comment to each pull request in the stack showing the entire stack
  • git stack does not break if you land pull requests through Github directly, ghstack requires landing from the command-line interface
  • git stack uses the official GitHub CLI (gh) instead of personal access tokens

Development

npm run dev
npm link

git stack --verbose

FAQs

Package last updated on 10 Dec 2023

Did you know?

Socket

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.

Install

Related posts