You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,16 @@
2
2
3
3
## Project Overview
4
4
5
-
`git-rain` is a standalone Go CLI for pulling remote state back down — the reverse of `git-fire`. Operating modes, lightest to heaviest: **(1)** default `git fetch --all` per repo (`--prune` opt-in via `--prune`/`--no-prune`, `global.fetch_prune`, registry `fetch_prune`, or `git config --local rain.fetchprune`); **(2)**`--fetch-mainline`; **(3)**`--sync` + `branch_mode`; **(4)**`--risky` on the sync path. Extracted from the `git-fire` codebase and promoted to a first-class tool.
5
+
`git-rain` is a standalone Go CLI for pulling remote state back down — the reverse of `git-fire`.
6
+
7
+
Operating modes, lightest to heaviest:
8
+
9
+
1.**Default** — `git fetch --all` per repo. `--prune` is opt-in. Precedence per repo: CLI (`--prune` / `--no-prune`) → local `git config rain.fetchprune` → registry `fetch_prune` → global `fetch_prune`.
10
+
2.**`--fetch-mainline`** — targeted fetches for mainline branches only (incompatible with `--sync` / full-sync triggers; CLI returns an error if combined).
11
+
3.**`--sync` + `branch_mode`** — hydrate local branches from remotes.
12
+
4.**`--risky`** — on the sync path only; allows hard reset to upstream after backup refs.
13
+
14
+
Extracted from the `git-fire` codebase and promoted to a first-class tool.
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ git-rain → fetch all remotes by default, or hydrate locals with --sync
20
20
21
21
`git-rain` discovers git repositories under your scan path (and known registry entries). **Default:**`git fetch --all` per repo (no `--prune` unless you opt in) so **remote-tracking refs** update without moving local branches. **Lighter fetch:**`--fetch-mainline`. **Local updates:**`--sync` with `--branch-mode` / config. **Destructive realignment:**`--risky` on the sync path only.
22
22
23
-
> **Warning: `--prune` is opt-in.** Passing `--prune` on `git fetch` deletes **stale remote-tracking branch refs** (for example `refs/remotes/origin/old-feature` after that branch was removed on the server). That is usually what you want for a tidy clone, but it **removes those ref names locally** until the next fetch brings them back if the branch reappears. Enable pruning only when you intend it: **`--prune`** / **`--no-prune`** for this run, **`global.fetch_prune`** in config, **`fetch_prune`** on a registry entry, or per-repo **`git config --local --bool rain.fetchprune true`**. Precedence for a given repo is: **CLI** → **repo `rain.fetchprune`** → **registry `fetch_prune`** → **global `fetch_prune`**.
23
+
> **Warning: `--prune` is opt-in.** Passing `--prune` on `git fetch` deletes **stale remote-tracking branch refs** (for example `refs/remotes/origin/old-feature` after that branch was removed on the server). That is usually what you want for a tidy clone, but it **removes those ref names locally** until the next fetch brings them back if the branch reappears. Enable pruning only when you intend it, in this order of override: **`--prune`** / **`--no-prune`** for this run, per-repo **`git config --local --bool rain.fetchprune`**, **`fetch_prune`** on a registry entry, or **`global.fetch_prune`** in config. Effective precedence for each repo is: **CLI** → **`rain.fetchprune`** → **registry `fetch_prune`** → **global `fetch_prune`**.
24
24
25
25
Invocation note: `git-rain` and `git rain` are equivalent when `git-rain` is on your PATH.
26
26
@@ -223,7 +223,7 @@ git-rain --init
223
223
|`--dry-run`| Show what would run without making changes |
0 commit comments