
Research
Node.js Fixes AsyncLocalStorage Crash Bug That Could Take Down Production Servers
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.
A cli that provides a set of git wf subcommands which simplify dealing with
feature branches & GitHub pull requests. Does not require a GH API token, as
it just opens your browser to complete Pull Request operations.
start)pr)done)abort)rename)cut-release, qa,
hotfix, merge-back)Below we use the term main to refer to your mainline branch; if you have a
main branch in your local checkout, we'll assume that's the one you're using.
If not, we'll assume you're using master.
$ npm install -g git-wf
If your GitHub username does not match $USER in your environment, you
should set the $GH_USER env var to your GitHub username wherever you
set your shell's environment variables.
$ git wf --help
The start, pr, abort, rename, and done commands can be used on any
project that has a master or main branch.
All of the other commands will enforce the existence and use of the main,
release, and hotfix branch naming scheme.
git wf start [--fork] <name> - starts a new feature branchGiven you are currently on branch <parent>
git pull<name> locally with
git checkout -b <name>--fork or already have a remote named fork:
fork<yourusername>/<reponame> exists on github,
and if not prompts you to create itfork remote for youfork as a branch named
feature/<parent>/<name> with
git push -u fork <name>:feature/<parent><name>origin as a branch named
<yourusername>/feature/<parent>/<name> with
git push -u origin <name>:<yourusername>/feature/<parent>/<name>git wf rename <newname> - renames a feature branchIf you decide you don't like your name, from a checked out feature branch run this command, passing a new name, it will:
git wf abort - aborts a featureIf you decide you don't like your new feature, you may PERMANENTLY delete it,
locally and remotely, using git wf abort. This will:
git wf pr - PRs a completed feature branchGiven you are currently on a feature branch named <name>, makes sure all your
work is pushed to origin or fork, then opens your browser to a GitHub PR
creation page to merge that back to its parent branch.
git wf done - cleans up a merged feature branchGiven you are currently on a feature branch named <name>
git checkout <parent>git pull --no-rebasegit branch -d <name>git remote prune origingit wf cut-release [branch] - PRs starting a fresh release from maingit wf merge-back (see below)git wf pr to merge branch (default: main) to
releasegit wf qa [branch] - Tags build of branch[branch] is given, defaults to current branch[branch] is release, runs git wf merge-back[branch] with git checkout [branch]git pull --no-rebaseHEAD of [branch] as build-YYYY.mm.dd_HH.MM.SS with
git tag build-...git push origin tag build-...git wf hotfix <build-tag> - Moves the hotfix branch to given taghotfix branchhotfix to given build taghotfix branchgit wf merge-back - Merges all changes back from main ← release ← hotfixhotfix branchhotfix branch to release branch - if there are conflicts, it
creates a feature branch for you to clean up the results, and submit a PR.
If not, pushes the merged branch.release onto mainHere's a narrative sequence of events in the life of a project:
main, release, and hotfix all
pointing at the same placegit wf start widget-fixwidget-fix, you make some commits, decide it's ready to PR,
and run git wf prwidget-fix, you run git wf done, which cleans it upgit wf start bad-ideea, make a few commits, then
realize you named it wrong, so you git wf rename bad-idea - which is fine
until you realize you don't want it at all, so you git wf abort and it's
all gone.git wf cut-release -
now your release branch is pointing up-to-date with main, and people
can resume adding features to maingit wf qa release which
creates a build-... tagbuild-... tag is available for deploying
however you do that, so you deploy it, QA it, and eventually release it
to production.main, maybe a
new release has even been cut to release, when you realize there's
a problem on production, so you run git wf hotfix build-... with the
build tag that's currently on production. Your hotfix branch is now
ready for fixes.hotfix branch, you git wf start urgent-thingy and now you're
on a feature branch off of hotfix - you make your commits to fix the
bug and git wf prhotfix branch, you
git wf done to cleanupgit wf qa hotfix creates a new build-... tag off of the hotfix branch,
which can be QAed, then (quickly!) deployed to productiongit wf merge-back, which will take those commits
sitting on hotfix and merge them back onto the release branch you had
in progress. This goes cleanly, so it just does it for you.release back onto main, but uh-oh there are some
conflicts by now, because someone fixed the problem a different way on
main. No worries, git wf will detect that, create a feature branch
to resolve the conflicts, let you clean up the merge on that branch, and
then you git wf pr and it will open a PR to review the resolution.At every stage, you don't need to stop your forward progress, forget which your next planned release was, or anything else as you add new features and hotfix production issues.
FAQs
Git Workflow Subcommands
The npm package git-wf receives a total of 3 weekly downloads. As such, git-wf popularity was classified as not popular.
We found that git-wf demonstrated a not healthy version release cadence and project activity because the last version was released 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.

Research
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.

Research
/Security News
A malicious Chrome extension steals newly created MEXC API keys, exfiltrates them to Telegram, and enables full account takeover with trading and withdrawal rights.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.