https://github.com/teneplaysofficial/gitnifty
A promise based, TypeScript-built Git utility for Node.js. Simplify Git operations with smart, automation ready commands for CLI tools and custom workflows. Clever Git, Made Simple.
https://github.com/teneplaysofficial/gitnifty
automation cli git git-commands git-utils gitnifty javascript nodejs open-source productivity promise-based typescript utilities version-control
Last synced: 22 days ago
JSON representation
A promise based, TypeScript-built Git utility for Node.js. Simplify Git operations with smart, automation ready commands for CLI tools and custom workflows. Clever Git, Made Simple.
- Host: GitHub
- URL: https://github.com/teneplaysofficial/gitnifty
- Owner: teneplaysofficial
- License: apache-2.0
- Created: 2025-07-21T16:43:06.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-09-08T12:53:27.000Z (5 months ago)
- Last Synced: 2025-10-26T19:02:56.134Z (4 months ago)
- Topics: automation, cli, git, git-commands, git-utils, gitnifty, javascript, nodejs, open-source, productivity, promise-based, typescript, utilities, version-control
- Language: TypeScript
- Homepage: http://gitnifty.js.org
- Size: 175 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/funding.yml
- License: LICENSE
Awesome Lists containing this project
README
# GitNifty
_A robust, promise-based Git utility for Node.js_
[](https://www.npmjs.com/package/gitnifty)
[](https://github.com/TenEplaysOfficial/gitnifty/blob/main/LICENSE)
[](https://github.com/TenEplaysOfficial/gitnifty/stargazers)
[](https://www.npmjs.com/package/gitnifty)
[](https://github.com/TenEplaysOfficial/gitnifty)
[](https://github.com/sponsors/TenEplaysOfficial)
[](https://x.com/teneplays)
**GitNifty** is a robust and promise-based Git utility for Node.js, offering developers smart, automation-ready commands for common Git operations. Ideal for building CLI tools, automation scripts, or custom Git workflows, GitNifty streamlines your Git interaction without complex shell scripting.
> Elevate your Git game with tools that are as delightful as they are effective.
Built with TypeScript and powered by `child_process.exec`, GitNifty offers clean abstractions for Git commands while maintaining full control and flexibility.
## Installation
```sh
yarn add gitnifty
# or
npm install gitnifty
```
## Usage
GitNifty exposes a `Git` class that can be used to interact with a Git repository via common commands like `user`, `currentBranch`, `checkWorkingDirClean`, and more.
### Basic Example
```ts
import { Git } from "gitnifty";
const git = new Git({ cwd: "/path/to/your/repo" });
const username = await git.getUserName(); // e.g., 'John Doe'
const branch = await git.getCurrentBranchName(); // e.g., 'main'
const isClean = await git.isWorkingDirClean(); // true or false
```
### Async Usage
```ts
async function main() {
const git = new Git();
const userName = await git.getUserName();
console.log("Git User:", userName);
}
main();
```
## Features
- **Smart Commands** - Get common Git info without writing raw shell logic.
- **Promise-based** - Easy async integration with modern toolchains.
- **Error-resilient** - Graceful handling for missing remotes or configs.
- **Automation-ready** - Perfect for CLI tools, devops, and build scripts.
- **Zero dependencies** - Lightweight and focused.
- **TypeScript Support** - Fully typed API for better DX.
## API
You can view the complete API reference [here](https://TenEplaysOfficial.github.io/gitnifty).
## Requirements
- Node.js v18+
- Git installed and available in PATH
- TypeScript (optional but supported)
## FAQ
Does it work outside of Git repositories?
Some commands require a valid Git repository (.git folder). Others like git config may still work.
Can I use this in a CLI tool?
Yes! GitNifty is designed for CLI automation. You can use it in commander, yargs, or any script-based tool.
Does it support Git hooks or events?
Coming soon! GitNifty will support basic hook helpers and lifecycle execution.
## License
Released under the [Apache License](LICENSE)