#command-line-tool #git #command #helper #cli

bin+lib rona

A simple CLI tool to help you with your git workflow

1 stable release

Uses new Rust 2024

new 1.1.2 Apr 29, 2025
1.0.0 Apr 29, 2025
0.2.0 Apr 29, 2025
0.1.0 Apr 29, 2025
0.0.1 Apr 29, 2025

#1006 in Command line utilities

Download history

162 downloads per month

Apache-2.0 OR MIT

48KB
880 lines

🔌 Rona

A powerful CLI tool to streamline your Git workflow

Crates.io Version Documentation License Build Status

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

Quick Start

  1. Add files excluding patterns:
rona -a "*.rs"  # Exclude all Rust files
  1. Generate commit message:
rona -g  # Opens interactive commit type selector
  1. 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

File Management

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 Management

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)

commit (-c)

Commit changes using prepared message.

rona commit [extra args]
# or
rona -c [extra args]

Repository Operations

push (-p)

Push committed changes to remote repository.

rona push [extra args]
# or
rona -p [extra args]

list-status (-l)

Display repository status (primarily for shell completion).

rona list-status
# or
rona -l

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:

at your option.

Support

For bugs, questions, and discussions please use the GitHub Issues.

Dependencies

~5–13MB
~147K SLoC