git-stack
ghstack
git-stack | ghstack | |
---|---|---|
12 | 8 | |
11 | 657 | |
- | - | |
0.0 | 7.0 | |
2 months ago | 5 days ago | |
Rust | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
git-stack
-
[Gitoxide December Update]: a new object database and upcoming multi-pack index support
git-stack is the most complicated, rewriting history, detecting when a branch was squashed, etc
-
Lazygit: A simple terminal UI for Git commands
I used to use aliases but got frustrated with them when dealing with PRs depending on PRs, so I wrote git-stack [0]. Thought I'd share in case you'd find it useful
[0] https://github.com/epage/git-stack/blob/main/docs/reference....
-
Stacked changes: how FB and Google engineers stay unblocked and ship faster
For anyone interested, I've been collecting notes on various tools in this space: https://github.com/epage/git-stack/blob/main/docs/comparison... (granted the page doesn't mention git-stack since that is assumed)
-
Good strategy to follow for small incremental pull request
Personally, I rebase my PR branches on top of each other, rather than merge. It creates a cleaner history (if your merge policy allows maintaining branch history). Tired of managing these branches, I wrote a tool to help though there are other tools in this space, like git-branchless and graphite.
-
Lightning-fast rebases with Git-move
git-move and git-branchless do some great stuff, I wish this wasn't focused on the performance side to distract from the real value.
What I find useful is not the performance but this line
> For example, it can move entire subtrees, not just branches
The referenced docs mention other great quality of life improvements that streamline standard workflows (e.g. deleting local PR branches when merged into upstream)
When performance does matter is when the rebase operation is a small part of a larger operation. In my related tool, git-stack [0], I rebase all branches on top of their latest upstream branches along with re-arranging and squashing fixup commits and soon other features. When automating entire workflows, having each part be fast is important for the whole to still have decent performance.
[0] https://github.com/epage/git-stack
-
Continuous Integration with Github Actions and Rust
audit for security audits - Separate from regular CI since it only matters for specific changes or when new critical issues come out.
-
My favorite git aliases
You might be interested in git-stack that I've previously announced
-
git-stack: Request for feedback / testers
Could you comment on https://github.com/epage/git-stack/issues/25 for why it helps to iterate to find the last non-conflicting commit to rebase onto?
git-stack is the result of me being tired of annoyances in the PR workflow and trying to improve it, like
-
git-stack: Stacked branch management for Git
Fixing branches off of branches when applying a fixup commit (not implemented yet)
ghstack
-
I analyzed code review best practices for a year. This is what I learned.
This fact can make you lose some time synching the depending branches manually with ‘merge’ or ‘rebase’, this is why some tools where born such as git-town, ghstack or graphite.
- Reorient GitHub Pull Requests Around Changesets
-
Why SQLite Does Not Use Git
It seems like this is an idea that is really sticky.
[0] https://github.com/ezyang/ghstack
-
How much refactoring is too much for one PR?
And there are various tools to help make this workflow easier to manage. Graphite and ghstack, to name just two examples.
- Ghstack: Auto-Update Interdependent PRs
- Ghstack: Submit stacked diffs to GitHub on the command line
-
Stacked changes: how FB and Google engineers stay unblocked and ship faster
How is this different from ghstack? https://github.com/ezyang/ghstack (which is what Edward Yang for PyTorch developers to mimic the stacked workflow, although it works with other repos).
-
A Better Model for Stacked (GitHub) Pull Requests
While working on PyTorch, I also wrote an equivalent tool (funnily named nearly the same thing) for doing stack diffs (https://github.com/ezyang/ghstack/), which most of our team uses for more complicated PRs. The UX for working on commits is a bit different than this tool though; instead of pushing branches individually, you just run "ghstack" on a stack of commits and it will create a PR per commit in the chain (amending each commit so that its commit message records what PR it corresponds to). To update the PRs, just amend or interactive rebase the original commits. Personally, I find this a lot easier to handle than finagling tons of branches.
What are some alternatives?
lazygit.nvim - Plugin for calling lazygit from within neovim.
graphite-cli - Graphite's CLI makes creating and submitting stacked changes easy.
fossil-mirror - A test of the ability of the Fossil DVCS to mirror to GitHub
git-branchless - High-velocity, monorepo-scale workflow for Git
git-ps - Patch Stack workflow CLI extension for Git
feedback - Public feedback discussions for: GitHub for Mobile, GitHub Discussions, GitHub Codespaces, GitHub Sponsors, GitHub Issues and more! [Moved to: https://github.com/github-community/community]
git-tools - Variaous tools for working with git.
GitUp - The Git interface you've been missing all your life has finally arrived.
autorebase - Automatically rebase all your branches onto master
git-stack - Stacked branch management for Git