@pierred/node-git
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

Simple Git API for Node.js (ESM).

All Contributors npm version last commit

Installation

npm i @pierred/node-git

API

changesCount()

Get the count of changes.

It does include changes that have been staged, which haven't.

It does not include changes that are untracked.

changesCount(): Promise<number>

stagedCount()

Get the count of changes that have been staged.

stagedCount(): Promise<number>

commit(message[, options])

Create a commit given one or multiple commit message(s).

commit(message: string | string[], options?: { skipHooks: boolean }): Promise<void>

Example usage:

await commit("My Commit"); // execute `git commit -m "My Commit"`.
await commit(["My Commit", "My Second Commit"]); // execute `git commit -m "My Commit" -m "My Second Commit"`.

indexAll(options)

Add current changes to the git staging area.

indexAll(options?: IndexAllOptions): Promise<void>

indexAllCurrentDirectory(options)

Add current changes of the current working directory to the git staging area.

indexAllCurrentDirectory(options?: indexAllCurrentDirectoryOptions): Promise<void>

This method should not be used with Git V2.x without ignoreRemovals: true, because Git V2.x does include deleted files by default. Git V1.x side, it doesn't support --ignore-removal flag, deleted files are omitted as expected behavior.

indexFileOrDirectory(fileOrDirectory)

Add standalone file or directory to the git staging area.

indexFileOrDirectory(fileOrDirectory: string): Promise<void>

indexFilesOrDirectories(filesOrDirectories)

Add multiple files or directories to the git staging area.

indexFilesOrDirectories(filesOrDirectories: string[]): Promise<void>

logs()

Get the list of all commits for the current branch.

logs(): Promise<Commit[]>

push()

Push to remote.

push(): Promise<void>

restoreFile(file)

Remove given file from the git staging area.

restoreFile(file: string): Promise<void>

currentBranch()

Retrieve current branch name.

currentBranch(): Promise<string>

init()

Initialize a git repository. If git is already initialized, it will prompt for a confirmation.

init(): Promise<void>;

currentAuthor()

Get the current author to the format name <email> (based on Git configuration).

currentAuthor(): Promise<string>;

Types

IndexAllOptions

interface IndexAllOptions {
  omitNewFiles: boolean;
}

Whether omit to index new files. Setting it to true will execute git add -u.

indexAllCurrentDirectoryOptions

interface indexAllCurrentDirectoryOptions {
  ignoreRemovals: boolean;
}

Whether omit to index deleted files. Setting it to true will execute git add . --ignore-removal.

CommitMergeResult

interface CommitMergeResult {
  from: string;
  to: string;
}

Represents the result of a merge commit.

CommitAuthor

interface CommitAuthor {
  name: string;
  email: string;
}

Represents a commit author: name & email.

Commit

interface Commit {
  commit: string,
  merged: null | CommitMergeResult,
  author: CommitAuthor,
  date: string,
  message: string[]
}

Represent a commit.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

PierreD
PierreD

💻 ⚠️
Yefis
Yefis

💻 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

Readme

Keywords

Package Sidebar

Install

npm i @pierred/node-git

Weekly Downloads

2

Version

1.3.1

License

ISC

Unpacked Size

19.3 kB

Total Files

17

Last publish

Collaborators

  • pierred