4 stable releases
Uses new Rust 2024
new 2.3.0 | May 21, 2025 |
---|---|
2.2.4 | May 20, 2025 |
2.0.1 |
|
1.1.6 |
|
0.0.1 |
|
#27 in Command line utilities
2,076 downloads per month
81KB
1.5K
SLoC
🔌 Rona
A powerful CLI tool to streamline your Git workflow
Overview
Rona is a command-line interface tool designed to enhance your Git workflow with powerful features and intuitive commands. It simplifies common Git operations and provides additional functionality for managing commits, files, and repository status.
Features
- 🚀 Intelligent file staging with pattern exclusion
- 📝 Structured commit message generation
- 🔄 Streamlined push operations
- 🎯 Interactive commit type selection
- 🛠 Fish shell completion support
Installation
cargo install rona
rona init [editor] # The editor to use for commit messages [vim, zed] (default: nano)
Quick Start
- Add files excluding patterns:
rona -a "*.rs" # Exclude all Rust files
- Generate commit message:
rona -g # Opens interactive commit type selector
- Commit changes:
rona -c [ARGS] # Commits using message from commit_message.md
# Push changes to remote repository
rona -cp [ARGS] # here, the args will be passed to git commit
Command Reference
add-with-exclude
(-a
)
Add files to Git staging while excluding specified patterns.
rona add-with-exclude <pattern(s)>
# or
rona -a <pattern(s)>
Example:
rona -a "*.rs" "*.tmp" # Exclude Rust and temporary files
commit
(-c
)
Commit changes using prepared message.
rona commit [extra args]
# or
rona -c [-p | --push] [extra args]
generate
(-g
)
Generate or update commit message template.
rona generate
# or
rona -g
Features:
- Creates
commit_message.md
and.commitignore
- Interactive commit type selection
- Automatic file change tracking
- Opens in default editor (set via EDITOR env variable)
init
(-i
)
Initialize Rona configuration.
rona init [editor] # The editor to use for commit messages [vim, zed] (default: nano)
list-status
(-l
)
Display repository status (primarily for shell completion).
rona list-status
# or
rona -l
push
(-p
)
Push committed changes to remote repository.
rona push [extra args]
# or
rona -p [extra args]
set-editor
(-s
)
Set the default editor for commit messages.
rona set-editor <editor> # The editor to use for commit messages [vim, zed], no default here
help
(-h
)
Display help information.
rona help
# or
rona -h
Shell Integration
Fish Shell Completion
Add the following to your Fish configuration:
source /path/to/rona/completions/rona.fish
Development
Requirements
- Rust 2021 edition or later
- Git 2.0 or later
Building from Source
git clone https://github.com/TomPlanche/rona.git
cd rona
cargo build --release
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Support
For bugs, questions, and discussions please use the GitHub Issues.
Dependencies
~5–13MB
~150K SLoC