@pierred/node-git
v1.3.1
Published
Git API for node.js
Downloads
32
Readme
Simple Git API for Node.js (ESM).
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):
This project follows the all-contributors specification. Contributions of any kind welcome!