git-sync: ein Aufruf statt mehrerer Nachfragen (all-Modus + allow-Regel)
This commit is contained in:
@@ -2,23 +2,12 @@
|
||||
description: Commit + Push aller persistent konfigurierten Projekt-Repos
|
||||
---
|
||||
|
||||
Du committest und pushst die persistent hinterlegten Projekt-Verzeichnisse
|
||||
(`permissions.additionalDirectories` aus den Settings) — nicht das CWD.
|
||||
Führe genau dieses eine Kommando aus, sonst nichts:
|
||||
|
||||
1. Verzeichnisse sammeln (Projekt-, lokale, User-Settings, dedupliziert):
|
||||
```bash
|
||||
for f in .claude/settings.json .claude/settings.local.json "$HOME/.claude/settings.json"; do
|
||||
[ -f "$f" ] && jq -r '.permissions.additionalDirectories[]?' "$f" 2>/dev/null
|
||||
done | sort -u | sed "s|^~/|$HOME/|"
|
||||
```
|
||||
2. Für jedes Verzeichnis, das ein Git-Repo ist: aus `git -C <dir> status` und
|
||||
`git -C <dir> diff --staged --stat` plus `git -C <dir> diff --stat` eine knappe,
|
||||
sachliche einzeilige Commit-Message auf Deutsch erzeugen (beschreibt, was geändert wurde).
|
||||
3. Pro Verzeichnis aufrufen:
|
||||
```bash
|
||||
"$HOME/claude-projects/global/bin/git-sync" "<dir>" "<message>"
|
||||
```
|
||||
4. Ergebnisse pro Repo zusammenfassen: committed / gepusht / nichts zu tun / abgelehnt.
|
||||
```bash
|
||||
~/claude-projects/global/bin/git-sync
|
||||
```
|
||||
|
||||
Verändere nichts außerhalb dieser Verzeichnisse. Kein force, kein merge — das Skript
|
||||
ist darauf ausgelegt und meldet Konflikte nur, statt sie aufzulösen.
|
||||
Das Skript liest selbst die `permissions.additionalDirectories` aus den Settings und
|
||||
synct jedes Repo (add, commit mit Timestamp-Message, pull --rebase, push). Kein force,
|
||||
kein Merge. Gib anschließend die Ausgabe des Skripts wieder.
|
||||
|
||||
Reference in New Issue
Block a user