🔌 Rona
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
- 🛠 Multi-shell completion support (Bash, Fish, Zsh, PowerShell)
Installation
Quick Start
- Add files excluding patterns:
- Generate commit message:
- Commit changes:
# Push changes to remote repository
Command Reference
add-with-exclude (-a)
Add files to Git staging while excluding specified patterns.
)>
# or
)>
Example:
commit (-c)
Commit changes using prepared message.
# or
completion
Generate shell completion scripts.
Supported shells: bash, fish, zsh, powershell
Example:
generate (-g)
Generate or update commit message template.
# or
Features:
- Creates
commit_message.mdand.commitignore - Interactive commit type selection
- Automatic file change tracking
- Opens in default editor (set via EDITOR env variable)
init (-i)
Initialize Rona configuration.
list-status (-l)
Display repository status (primarily for shell completion).
# or
push (-p)
Push committed changes to remote repository.
# or
set-editor (-s)
Set the default editor for commit messages.
help (-h)
Display help information.
# or
Shell Completion
Rona supports auto-completion for multiple shells using clap_complete.
Generate Completions
Generate completion files for your shell:
# Generate completions for specific shell
# Save to file
Installation by Shell
Fish Shell:
# Copy to Fish completions directory
rona completion fish > ~/.config/fish/completions/rona.fish
Bash:
# Add to your .bashrc
Zsh:
# Add to your .zshrc or save to a completions directory
PowerShell:
# Add to your PowerShell profile
rona completion powershell | Out-File -Append $PROFILE
Features
The completions include:
- All command and flag completions
- Git status file completion for
add-with-excludecommand (Fish only) - Context-aware suggestions
Development
Requirements
- Rust 2021 edition or later
- Git 2.0 or later
Building from Source
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.