A smart wrapper for nodegit that simplifies Git operations in Node.js.
Go to file
2016-12-31 23:17:03 +01:00
dist fix .addAll 2016-12-31 23:17:03 +01:00
test fix .addAll 2016-12-31 23:17:03 +01:00
ts fix .addAll 2016-12-31 23:17:03 +01:00
.gitignore update deps 2016-11-21 19:34:59 +01:00
.gitlab-ci.yml now works with SSH keys 2016-06-28 02:52:21 +02:00
.travis.yml small travis fix 2016-03-31 13:23:59 +02:00
index.js initial 2016-03-31 01:59:45 +02:00
LICENSE initial 2016-03-31 01:59:45 +02:00
npmextra.json add npmextra.json 2016-11-26 23:28:37 +01:00
package.json 1.0.4 2016-11-26 23:28:41 +01:00
README.md implement new class approach 2016-11-22 21:49:40 +01:00
test.js initial 2016-03-31 01:59:45 +02:00
tslint.json update 2016-11-22 00:07:36 +01:00

smartgit

smart git wrapper for node.

smartgit expects git to be installed on target machine.

Availabililty

npm git git docs

Status for master

build status coverage report Dependency Status bitHound Dependencies bitHound Code TypeScript node JavaScript Style Guide

Usage

We recommend the use of TypeScript for best in class intellisense

// import smartgit:
import { GitRepo } from 'smartgit'

// Initialize smartgit:
// -- note: there are 3 ways to initialize smartgit
// -- -- 1. with a existing Git repo
// -- -- 2. with a cloned Git repo
// -- -- 3. with a new Git repo

// -- 1. existing Git Repo:
let myExistingGitRepo = new GitRepo('/path/to/existing/git/repo/')

// -- 2. cloned Git Repo:
let myClonedGitRepo: GitRepo
smartgit.createRepoFromClone('git@github.com:username/reponame.git')
    .then(gitRepo => { // non blocking
        myClonedGitRepo = gitRepo
    })

// -- 3. new Git Repo
let myNewGitRepo: GitRepo
smartgit.createRepoFromInit('/path/to/new/folder') // smartgit will create any new folder, be careful
    .then(gitRepo => { // non blocking
        myNewGitRepo = gitRepo
    })

// Using smartgit instance
// -- most used actions
// -- all actions return promises, so make sure to use promise chaining for any dependent tasks
myExistingGitRepo.addAll() // returns promise, stages all changed files
myExistingGitRepo.add(['relative/path/to/file.txt','another/file2.txt']) // returns promise, stages specific files
myExistingGitRepo.commit('my commit message') // returns promise, commits staged files
myExistingGitRepo.status() // returns promise
    .then(status => { // Use TypeScript for status type information

    })
myExistingGitRepo.check() // returns promise, checks repo health
myExistingGitRepo.remoteAdd('git@github.com:username/reponame.git')

Tip: use smartssh to setup your SSH environment

npm