🍀 Local git statistics including GitHub-like contributions calendars.
Find a file
2015-09-15 13:20:17 +03:00
.blah Added blah templates 2015-07-13 09:37:09 +03:00
bin JSDoc comments 2015-09-14 17:29:40 +03:00
example Added example 2015-07-13 09:34:14 +03:00
lib Adding new functions to control the commit data file 2015-09-15 13:20:17 +03:00
scripts Added the migration script to 2.x.x 2015-07-13 08:36:48 +03:00
.gitignore Added gitignore. 2015-01-25 21:50:10 +02:00
CONTRIBUTING.md Added CONTRIBUTING.md 2015-07-15 09:37:00 +03:00
DOCUMENTATION.md 📝 Docs via Blah and relicense. 2015-07-13 09:40:25 +03:00
LICENSE 📝 Docs via Blah and relicense. 2015-07-13 09:40:25 +03:00
MIGRATION.md Added MIGRATION.md 2015-07-13 08:42:33 +03:00
package.json JSDoc comments 2015-09-14 17:29:40 +03:00
README.md 📝 Docs via Blah and relicense. 2015-07-13 09:40:25 +03:00

git-stats

$ git-stats Donate now

Local git statistics, including a GitHub-like contributions calendars.

I'd be curious to see your calendar with all your commits. Ping me on Twitter (@IonicaBizau). 😄 Until then, here's my calendar:

git-stats

Contents

Installation

You can install the package globally and use it as command line tool:

# Install the package globally
npm i -g git-stats
# Initialize git hooks
curl -s https://raw.githubusercontent.com/IonicaBizau/git-stats/master/scripts/init-git-post-commit | bash

Then, run git-stats --help and see what the cli tool can do.

$ git-stats --help
git-stats --help
A GitHub-like contributions calendar, but locally, with all your git commits.

usage: git-stats [start] [end] [options] [data]

start:                    Optional start date
end:                      Optional end date

options:
  -v                      Displays version information.
  -h --help               Displays this help.
  --no-ansi               Doesn't use ANSI colors in the squares.
  --record <data>         Records a new commit. Don't use this unless you are
                          a mad scientist. If you are a developer, just use this
                          option as part of the module.
  --light                 Enable the light theme.

examples:
   git-stats # Displays your commit calendar
   git-stats -v
   git-stats -h
   git-stats --light # Light mode
   git-stats '1 January 2012' # All the commits from 1 January 2012, to now
   git-stats '1 January 2012' '31 December 2012' # All the commits from 2012

Your commit history is kept in the .git-stats, in your $HOME directory (~/)

Documentation can be found at https://github.com/IonicaBizau/git-stats

If you run git-stats to display graph on Windows, please use a terminal that can properly display ANSI colors. Cygwin Terminal is known to work, while Windows Command Prompt and Git Bash do not.

Importing and deleting commits

I know it's not nice to start your git commit calendar from scratch. That's why I created a git-stats-importer that imports or deletes the commits from a repository.

Check it out here: https://github.com/IonicaBizau/git-stats-importer

The usage is simple:

# Install the importer tool
$ npm install -g git-stats-importer

# Go to the repository you want to import
$ cd path/to/my-repository

# Import the commits
$ git-stats-importer

# ...or delete them if that's a dummy repository
$ git-stats-importer --delete

Importing all the commits from GitHub and BitBucket

Yes, you read correctly! That's also possible. I built a tool for that too!

# Download the repository downloader
$ git clone https://github.com/IonicaBizau/repository-downloader.git

# Go to repository downloader
$ cd repository-downloader

# Install the dependencies
$ npm install

# Start downloading and importing
$ ./start

See the GitHub Contributions calendar

There is a solution for that, too! 😄 It's called ghcal.

# Install ghcal
$ npm install -g ghcal

# Checkout my contributions
$ ghcal ionicabizau

For more detailed documentation, check out the repository: https://github.com/IonicaBizau/ghcal.

Example

Here is an example how to use this package as library.

// Dependencies
var GitStats = require("git-stats");

// Create the GitStats instance
var g1 = new GitStats();

// Display the ansi calendar
g1.ansiCalendar({
    theme: "DARK"
}, function (err, data) {
    console.log(err || data);
});

Documentation

For full API reference, see the DOCUMENTATION.md file.

How to contribute

Have an idea? Found a bug? See how to contribute.

License

KINDLY © Ionică BizăuThe LICENSE file contains a copy of the license.