Skip to content

Get the change between index (or staging-area) and working tree of a `git` repository

License

Notifications You must be signed in to change notification settings

luftywiranda13/g-status

Repository files navigation

g-status

Get the change between index (or staging-area) and working directory of a git repository

Package Version Downloads Status Build Status: Linux Coverage Status

Think of git status or git status --porcelain, but returns a ready-to-consume result.

Why

  • Maintained
  • Accepts simple wildcard matching patterns
  • Promise API
  • Ability to get specific results based on status codes
  • Knows which files are partially/fully-staged

Installation

npm install g-status

Usage

$ git status --porcelain

A  .travis.yml  # fully-staged
MM index.js     # partially-staged
 M readme.md    # unstaged
const gStatus = require('g-status');

gStatus().then(res => {
  console.log(res);
  /*
    [
      { path: '.travis.yml', index: 'A', workingTree: ' ' },
      { path: 'index.js', index: 'M', workingTree: 'M' },
      { path: 'readme.md', index: ' ', workingTree: 'M' }
    ]
  */
});

gStatus({ path: ['!*.js', '!*.md'] }).then(res => {
  console.log(res);
  //=> [{ path: '.travis.yml', index: 'A', workingTree: ' ' }]
});

// Files marked as `Modified` or `Added` in the staging area,
gStatus({ index: 'MA' }).then(res => {
  console.log(res);
  /*
    [
      { path: '.travis.yml', index: 'A', workingTree: ' ' },
      { path: 'index.js', index: 'M', workingTree: 'M' },
    ]
  */
});

// Files that arenʼt changed in the working tree
gStatus({ workingTree: ' ' }).then(res => {
  console.log(res);
  //=> [{ path: '.travis.yml', index: 'A', workingTree: ' ' }]
});

// Files that are marked as `Modified` both in staging area and working tree
gStatus({ index: 'M', workingTree: 'M' }).then(res => {
  console.log(res);
  //=> [{ path: 'index.js', index: 'M', workingTree: 'M' }]
});

See the tests for more usage examples and expected matches.

API

gStatus([options])

Returns Promise<{ path: string, index: string, workingTree: string }[]>.

options

Type: Object

cwd

Type: string
Default: process.cwd()

Current working directory.

path

Type: string | string[]
Default: *

Use * to match zero or more characters. A pattern starting with ! will be negated.

index

Type: string
Default: *

String of git status codes of the index/staging-area, See Short Format.
One difference is that * will match all value here.

workingTree

Type: string
Default: *

String of git status codes of the working tree, See Short Format.
One difference is that * will match all value here.

Related

License

MIT © Lufty Wiranda

About

Get the change between index (or staging-area) and working tree of a `git` repository

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published