git-shadow 0.0.2

Standalone shadow copies of git repos (or parts of them) in a working directory.
# git-shadow

Run git commands against shadow repositories that live inside your working directory.

A shadow repo is a separate git repository checked out inside another project — useful for keeping vendored code, generated outputs, or loosely related projects alongside your main repo without making them submodules.

## Installation

```
cargo install git-shadow
```

This installs the `git-shad` binary. Git automatically treats any `git-<name>` binary on your `PATH` as a subcommand, so it becomes available as `git shad`.

## Configuration

Place a `.gitshadow.toml` file at the root of your project (next to your main `.git` directory):

```toml
[[shadows]]
name = "foobar"
repo = "git@github.com:example/foobar.git"
mapping = ".vendor/foobar/"
```

- **`name`** — the alias you use on the command line
- **`repo`** — the remote URL (reserved for future use; not used yet)
- **`mapping`** — path to the directory containing the shadow git repository, relative to `.gitshadow.toml`

You can define as many `[[shadows]]` entries as you need.

## Usage

```
git shad <shadow-name> <git-command> [args...]
```

`git-shad` walks up from your current directory until it finds `.gitshadow.toml`, then runs the given git command inside the shadow's `mapping` directory. You can run it from anywhere inside your project.

```
# List branches of the shadow repo
git shad foobar branch

# Pull latest changes
git shad foobar pull

# View recent commits
git shad foobar log --oneline

# Check status
git shad foobar status
```

Any git command and its arguments are passed through as-is.

## License

This project is licensed under either the [MIT License](LICENSE-MIT) or the [Apache License, Version 2.0](LICENSE-APACHE), at your option.