1- # gitkit
1+ ```
2+ ███ █████ █████ ███ █████
3+ ░░░ ░░███ ░░███ ░░░ ░░███
4+ ███████ ████ ███████ ░███ █████ ████ ███████
5+ ███░░███░░███ ░░░███░ ░███░░███ ░░███ ░░░███░
6+ ░███ ░███ ░███ ░███ ░██████░ ░███ ░███
7+ ░███ ░███ ░███ ░███ ███ ░███░░███ ░███ ░███ ███
8+ ░░███████ █████ ░░█████ ████ █████ █████ ░░█████
9+ ░░░░░███░░░░░ ░░░░░ ░░░░ ░░░░░ ░░░░░ ░░░░░
10+ ███ ░███
11+ ░░██████
12+ ░░░░░░
13+ ```
214
315[ ![ CI] ( https://github.com/JheisonMB/gitkit/actions/workflows/ci.yml/badge.svg )] ( https://github.com/JheisonMB/gitkit/actions/workflows/ci.yml )
416[ ![ Release] ( https://github.com/JheisonMB/gitkit/actions/workflows/release.yml/badge.svg )] ( https://github.com/JheisonMB/gitkit/actions/workflows/release.yml )
517[ ![ Crates.io] ( https://img.shields.io/crates/v/gitkit )] ( https://crates.io/crates/gitkit )
618[ ![ License: MIT] ( https://img.shields.io/badge/license-MIT-blue.svg )] ( LICENSE )
719
8- Standalone CLI for configuring git repos — hooks, .gitignore, and .gitattributes . No Node.js, no Python, no runtime dependencies. One binary.
20+ Configure a git repo in seconds — hooks, ` .gitignore ` , ` .gitattributes ` , and git config. Interactive wizard or direct commands . No Node.js, no Python, no runtime dependencies. One binary.
921
1022---
1123
@@ -31,61 +43,107 @@ irm https://raw.githubusercontent.com/JheisonMB/gitkit/main/install.ps1 | iex
3143cargo install gitkit
3244```
3345
46+ Available on [ crates.io] ( https://crates.io/crates/gitkit ) .
47+
3448### GitHub Releases
3549
3650Check the [ Releases] ( https://github.com/JheisonMB/gitkit/releases ) page for precompiled binaries (Linux x86_64, macOS x86_64/ARM64, Windows x86_64).
3751
3852### Uninstall
3953
54+ ** Linux / macOS:**
4055``` bash
4156rm -f ~ /.local/bin/gitkit
4257```
4358
59+ ** Windows (PowerShell):**
60+ ``` powershell
61+ Remove-Item "$env:LOCALAPPDATA\gitkit\gitkit.exe" -Force
62+ ```
63+
4464---
4565
46- ## Quick Start
66+ ## Quick Start
67+
68+ Interactive wizard — guided setup for a new repo:
69+
70+ ``` bash
71+ gitkit init
72+ ```
73+
74+ Or use commands directly:
4775
4876``` bash
49- # Install a built-in hook
50- gitkit hooks init commit-msg conventional-commits
77+ gitkit hooks add conventional-commits
78+ gitkit ignore add rust,vscode,agentic
79+ gitkit attributes init
80+ gitkit config apply defaults
81+ ```
5182
52- # Install a custom hook command
53- gitkit hooks init pre-push " cargo test"
83+ ---
5484
55- # List installed hooks
56- gitkit hooks list
85+ ## ` gitkit init `
5786
58- # Generate a .gitignore
59- gitkit ignore add rust,vscode
87+ Interactive wizard that guides you through configuring a repo step by step.
88+
89+ - Hooks — built-ins pre-selected, or add a custom command
90+ - ` .gitignore ` — filterable search across all gitignore.io templates + built-ins
91+ - ` .gitattributes ` — line endings and binary file presets
92+ - Git config — 6 individual options, recommended ones pre-selected
6093
61- # Apply line endings preset
62- gitkit attributes init
94+ ```
95+ gitkit init
6396```
6497
6598---
6699
67100## Commands
68101
102+ ### Hooks
103+
69104| Command | Description |
70105| ---| ---|
71- | ` gitkit hooks init <hook> <builtin\|command> ` | Install a hook (built-in or custom command) |
106+ | ` gitkit hooks add <builtin> ` | Install a built-in hook (hook name inferred) |
107+ | ` gitkit hooks add <hook> <command> ` | Install a custom shell command as a hook |
72108| ` gitkit hooks list ` | List installed hooks |
73- | ` gitkit hooks remove <hook> ` | Remove a hook |
74- | ` gitkit hooks show <hook> ` | Show hook content |
75- | ` gitkit ignore add <templates> ` | Generate .gitignore via gitignore.io |
109+ | ` gitkit hooks list --available ` | Show all built-in hooks with descriptions |
110+ | ` gitkit hooks remove <hook> ` | Remove an installed hook |
111+ | ` gitkit hooks show <hook> ` | Print hook content |
112+
113+ ### Ignore
114+
115+ | Command | Description |
116+ | ---| ---|
117+ | ` gitkit ignore add <templates> ` | Generate/merge ` .gitignore ` via gitignore.io |
76118| ` gitkit ignore list [filter] ` | List available templates |
77- | ` gitkit attributes init ` | Apply line endings preset |
78- | ` gitkit config apply <preset> ` | Apply git config preset (defaults, advanced, delta) |
119+
120+ ### Attributes
121+
122+ | Command | Description |
123+ | ---| ---|
124+ | ` gitkit attributes init ` | Apply line endings preset to ` .gitattributes ` |
125+
126+ ### Config
127+
128+ | Command | Description |
129+ | ---| ---|
130+ | ` gitkit config apply defaults ` | ` push.autoSetupRemote ` , ` help.autocorrect ` , ` diff.algorithm ` |
131+ | ` gitkit config apply advanced ` | ` merge.conflictstyle zdiff3 ` , ` rerere.enabled ` |
132+ | ` gitkit config apply delta ` | ` core.pager delta ` (requires ` cargo ` ) |
79133
80134---
81135
82136## Built-in Hooks
83137
138+ Run ` gitkit hooks list --available ` to see these without leaving the terminal.
139+
84140| Name | Hook | Description |
85141| ---| ---| ---|
86142| ` conventional-commits ` | ` commit-msg ` | Validates Conventional Commits format |
87- | ` no-secrets ` | ` pre-commit ` | Detects common secret patterns |
88- | ` branch-naming ` | ` pre-commit ` | Validates branch name pattern |
143+ | ` no-secrets ` | ` pre-commit ` | Detects common secret patterns in staged changes |
144+ | ` branch-naming ` | ` pre-commit ` | Validates branch name matches convention |
145+
146+ Built-ins are embedded in the binary — no network required.
89147
90148---
91149
@@ -99,16 +157,6 @@ gitkit attributes init
99157
100158---
101159
102- ## Tech Stack
103-
104- | Concern | Crate |
105- | ---| ---|
106- | CLI parsing | ` clap ` (derive) |
107- | Error handling | ` anyhow ` |
108- | HTTP client | ` ureq ` |
109-
110- ---
111-
112160## License
113161
114162MIT
0 commit comments