47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# commitly
|
|
|
|
A CLI tool for making commits to many subrepos after a distributed change.
|
|
|
|
## Overview
|
|
|
|
`commitly` is a Babashka/Clojure CLI tool designed for monorepo workflows where multiple independent git repositories coexist. When you make changes that span multiple subrepos (e.g., updating documentation, shared configuration, or architecture changes), `commitly` automates the process of committing those changes across all affected repositories.
|
|
|
|
## Features
|
|
|
|
- Automatically detects which subrepos have uncommitted changes
|
|
- Creates commits with a single message across all modified subrepos
|
|
- Reports commit status for each subrepo
|
|
- Written in Babashka for fast startup and easy distribution
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Commit changes across all modified subrepos
|
|
./commitly "Your commit message here"
|
|
```
|
|
|
|
## Requirements
|
|
|
|
- [Babashka](https://babashka.org/) installed and available on PATH
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Make the script executable
|
|
chmod +x commitly
|
|
|
|
# Optionally, symlink to a directory in your PATH
|
|
ln -s $(pwd)/commitly /usr/local/bin/commitly
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. Scans parent directory for git repositories
|
|
2. Checks each repository for uncommitted changes (staged or unstaged)
|
|
3. Commits changes in each modified repository with the provided message
|
|
4. Reports success/failure for each repository
|
|
|
|
## Use Case
|
|
|
|
Perfect for monorepos containing multiple independent services (each with their own `.git` directory) where cross-cutting changes need to be committed atomically with consistent commit messages.
|