Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonschlinkert/is-dirty
Returns true if a git repository has staged, unstaged or untracked changes.
https://github.com/jonschlinkert/is-dirty
git head staged unstaged
Last synced: 2 months ago
JSON representation
Returns true if a git repository has staged, unstaged or untracked changes.
- Host: GitHub
- URL: https://github.com/jonschlinkert/is-dirty
- Owner: jonschlinkert
- License: mit
- Created: 2016-03-11T04:30:43.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-07-17T18:12:48.000Z (over 8 years ago)
- Last Synced: 2024-10-04T10:04:57.533Z (3 months ago)
- Topics: git, head, staged, unstaged
- Language: JavaScript
- Size: 9.77 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# is-dirty [![NPM version](https://img.shields.io/npm/v/is-dirty.svg?style=flat)](https://www.npmjs.com/package/is-dirty) [![NPM downloads](https://img.shields.io/npm/dm/is-dirty.svg?style=flat)](https://npmjs.org/package/is-dirty) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-dirty.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-dirty)
Returns false if a git repository has no staged, unstaged or untracked changes.
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install --save is-dirty
```## API
```js
var isDirty = require('is-dirty');isDirty(directory[, globPatterns], callback);
```**Params**
* `directory` **{String}**: a directory that contains a `.git` folder
* `globPatterns` **{String|Array}**: optionally pass one or more glob patterns to use for matching any uncommitted files. This is useful if you only want to know if specific files have not been committed.
* `callback`: **{Function}**: function to call after the git status is returned### Usage
```js
isDirty(process.cwd(), function(err, status) {
console.log(status);
});
```* **err**: if a `.git` directory does not exist
* **status**: if `.git` directory exists, and there are no staged, unstaged or untracked changes, `status`will be undefined. Otherwise `status` is an object with `staged`, `unstaged` or `untracked` changes, and `matches` if glob patterns are passed.### Example
Given you have a project with the following `staged` files:
```
.
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── e.txt
```The following:
```js
isDirty(process.cwd(), function(err, status) {
if (err) return console.log(err);
console.log(status);
});
```Would result in:
```js
{ staged:
[ { file: 'a.txt', status: 'new file' },
{ file: 'b.txt', status: 'new file' },
{ file: 'c.txt', status: 'new file' },
{ file: 'd.txt', status: 'new file' },
{ file: 'e.txt', status: 'new file' } ],
unstaged: [],
untracked: [],
matches: [] }
```**Matches**
Pass a glob or array of globs as the second argument to return an array of matching files on the `status.matches` array:
```js
isDirty(process.cwd(), ['{a,c}.txt'], function(err, status) {
if (err) return console.log(err);
console.log(status);
});
```Would result in:
```js
{ staged:
[ { file: 'a.txt', status: 'new file' },
{ file: 'b.txt', status: 'new file' },
{ file: 'c.txt', status: 'new file' },
{ file: 'd.txt', status: 'new file' },
{ file: 'e.txt', status: 'new file' } ],
unstaged: [],
untracked: [],
matches: [ 'a.txt', 'c.txt' ] }
```## About
### Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
### Building docs
_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
```sh
$ npm install -g verb verb-generate-readme && verb
```### Running tests
Install dev dependencies:
```sh
$ npm install -d && npm test
```### Author
**Jon Schlinkert**
* [github/jonschlinkert](https://github.com/jonschlinkert)
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)### License
Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
Released under the [MIT license](https://github.com/jonschlinkert/is-dirty/blob/master/LICENSE).***
_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on July 17, 2016._