GitSith 0.0.9

dotnet tool install --global GitSith --version 0.0.9
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local GitSith --version 0.0.9
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=GitSith&version=0.0.9
                    
nuke :add-package GitSith --version 0.0.9
                    

git-sith

A developer-oriented Git power tool for common tasks. Because the dark side has better tools. ⚔️

Features

git sith ignore

Easily add .gitignore templates to your repository using GitHub's official template collection.

Usage:

# Add a single template
git sith ignore node

# Add multiple templates
git sith ignore node python visualstudio

# Use aliases (csharp → Dotnet, js → Node, etc.)
git sith ignore csharp js

# List all available templates
git sith ignore --list

# Show available aliases
git sith ignore --aliases

# Embrace the dark side (ignore everything)
git sith ignore

git sith force-push / git sith push

Stage all changes, commit with a message, and push to remote in one command. Perfect for quick iterations.

Usage:

# Commit with a custom message and push
git sith push "Fixed the bug"

# Let the dark side choose your commit message
git sith push
# Uses random Sith quotes like "Peace is a lie, there is only passion."

Aliases: force, force-push, push

git sith purge / git sith order-66

Remove a file from git history completely - the nuclear option. Rewrites history to eliminate all traces of a file.

Usage:

# Purge a file from all history
git sith purge secrets.txt

# Use the Order 66 alias
git sith order-66 passwords.env

# With confirmation prompt (for the weak-willed)
git sith purge secrets.txt --confirm

Aliases: purge, obliterate, destroy, 66, order-66, damnatio-memoriae, memory-hole

⚠️ Warning: This rewrites git history. After purging, you'll need to force push and collaborators will need to re-clone.

git sith help

Show help for git-sith commands. Works around the issue where git sith --help is intercepted by Git itself.

Usage:

# Show all commands
git sith help

# Show help for a specific command
git sith help ignore
git sith help purge

Installation

# Build and install locally
dotnet pack
dotnet tool install --global --add-source ./nupkg GitSith

# Or install from NuGet (once published)
dotnet tool install --global GitSith

Option 2: Build and Add to PATH

# Build the project
dotnet build -c Release

# Copy the executable to a directory in your PATH
# On Windows:
copy bin\Release\net8.0\git-sith.exe C:\YourPathDirectory\

# On Linux/macOS:
cp bin/Release/net8.0/git-sith /usr/local/bin/
chmod +x /usr/local/bin/git-sith

Requirements

  • .NET 8.0 SDK or later
  • Git

How It Works

Git automatically recognizes executables named git-<subcommand> in your PATH. When you run git sith, Git looks for an executable called git-sith and executes it with any additional arguments.

Development

# Restore dependencies
dotnet restore

# Build
dotnet build

# Run locally
dotnet run -- ignore node

# Run tests (when added)
dotnet test

Roadmap

Future commands being considered:

  • git sith wip - Quick WIP commits
  • git sith undo - Safe undo operations
  • git sith clean - Interactive cleanup
  • git sith stats - Repository statistics
  • git sith alias - Manage git aliases with Sith flair

Contributing

Ideas and contributions welcome!

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.0.9 141 12/12/2025
0.0.5 125 12/12/2025
0.0.1 318 11/21/2025

# Release Notes

## Version 0.0.5 (Current)

### New Features

- **`git sith force-push`** - Stage all changes, commit, and push in one command
 - Random Sith quotes as default commit messages
 - Aliases: `force`, `force-push`, `push`

- **`git sith purge`** - Remove files from git history completely
 - Uses `git-filter-repo` (preferred) or `git filter-branch`
 - Multiple Sith-themed aliases: `order-66`, `damnatio-memoriae`, `memory-hole`, `obliterate`, `destroy`
 - Optional confirmation prompt with `--confirm` (aliases: `--padawan`, `--weakling`, `--jedi`)

- **`git sith help`** - Show help for commands (workaround for `git sith --help` being intercepted)

### Enhancements

- **Ignore command improvements:**
 - Template aliases (e.g., `csharp` → Dotnet, `js` → Node, `py` → Python)
 - `--aliases` flag to show all available aliases
 - Idempotent operation - won't add templates that already exist
 - "Dark side mode" - running without arguments creates a .gitignore that ignores everything
 - Works correctly from any subdirectory in the repository

- **Subdirectory support** - All commands now work correctly from any folder within the repository

- **RollForward enabled** - Tool now works with any .NET 8+ runtime version

## Version 0.0.1

Initial release featuring the `git sith ignore` command for easily adding .gitignore templates from GitHub's official collection. Supports single and multiple templates, with listing functionality.