npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

git-land

v2.2.1

Published

Merges a pull request or topic branch via rebasing to avoid a merge commit.

Readme

git-land

Build Status

This is a git extension that merges a pull request or topic branch via rebasing so as to avoid a merge commit. To merge a PR or branch, the script does the following:

  1. Fetch the latest target from the remote repository and reset your local target to match it.
  2. Check out the pull request or topic branch.
  3. Start an interactive rebase of the PR or topic branch on target.
  4. If merging a PR, append [close #<PR number>] to the last commit message so that Github will close the pull request when the merged commits are pushed.
  5. Fast-forward merge the rebased branch into target.
  6. Push target to the remote repository.

Note:

  • remote defaults to "origin" (configurable; see below)
  • target defaults to "master"

Usage

git land [options] [<remote>] <pull request number>[:<target>]
git land [options] [<remote>] <branch>[:<target>]

Examples

git land 123
git land my-topic-branch
git land origin 42:target-branch
git land origin feature-branch:target-branch

Options

-f, --force-push-topic: force push rebased topic branch

If this option is specified, git-land will force push the rebased topic branch request to the remote repository. Pull request branches are read-only, so git-land exits with an error if invoked with a pull request number and this option specified.

-F, --no-force-push-topic: do not force push rebased topic branch

If this option is specified, git-land will not force push the rebased topic branch request to the remote repository, even if configured to do so by default.

Installation

NPM (recommended)

You can install git-land using npm install.

npm install --global git-land

Manual Installation

Put the bash script in a folder that is in your PATH and make it executable. For example, to install it to ~/bin/, do the following:

curl -o ~/bin/git-land https://raw.githubusercontent.com/git-land/git-land/master/git-land
chmod +x ~/bin/git-land

Repository setup

Before pull requests for a remote repository can be landed by number, the git remote for that repository must be configured to fetch pull requests as branches in your local fork. To do so, run the following command, replacing both occurences of origin with the name of the git remote if necessary.

git config --add remote.origin.fetch '+refs/pull/*/head:refs/remotes/origin/pr/*'

Configuration

Remote repository

By default, git-land assumes the remote repository is pointed to by the git remote origin. To use a different default git remote, set the git-land.remote option. For example, to use a remote named upstream:

git config git-land.remote upstream

Target branch

By default, git-land merges the branch or pull request into master if no target branch is specified. To use a different default target branch, set the git-land.target option. For example, to use a default target branch named dev:

git config git-land.target dev

Whether to force push the topic branch

By default, git-land does nothing with the topic branch after rebasing it locally. Specifying the --force-push-topic option overrides this behavior, force pushing the rebased topic branch to the target remote. To make this behavior the default, set the git-land.force-push-topic option to true:

git config git-land.force-push-topic true

Thanks

Thanks to @paulirish for git-open, from which I cribbed the format and some content for this README.

Contributors

License

Copyright 2015 Bazaarvoice, Inc., RetailMeNot, Inc., and git-land contributors Licensed under Apache 2.0

http://www.apache.org/licenses/LICENSE-2.0