clone-with-hash
Clone With Hash
Overview
Create a fresh git clone in a unique -<hash> folder under a chosen parent directory (default: home), then check out a new branch from origin/main (or another base branch if specified).
Workflow
- Identify the source repo (local path or remote URL).
- Choose the parent directory (default:
~) and suffix length (default: 6). - Derive the base name from the repo path or URL (strip trailing
.git). - Generate a random hex suffix, build the destination path, and ensure it does not exist.
- Run
git clone <src> <dest>, thengit checkout -b <branch> origin/<base>. - Report the destination path and created branch.
Quick Commands
python - <<'PY'
import os, secrets
src = "/path/to/repo-or-url"
parent = os.path.expanduser("~")
name = os.path.basename(src).removesuffix(".git")
suffix = secrets.token_hex(3) # 6 hex chars
print(os.path.join(parent, f"{name}-{suffix}"))
PY
git clone /path/to/repo-or-url ~/repo-name-<hash>
git -C ~/repo-name-<hash> checkout -b user/<random> origin/main
Script
Use the bundled helper if you want a consistent, repeatable command:
./scripts/clone_with_hash.sh [--base <branch>] [--branch-prefix <prefix>] <repo-path-or-url> [parent-dir] [suffix-len]
Examples:
./scripts/clone_with_hash.sh /home/user/my-project
./scripts/clone_with_hash.sh https://github.com/org/repo.git ~/workspaces 8
./scripts/clone_with_hash.sh --base main --branch-prefix user/ /home/user/my-project
./scripts/clone_with_hash.sh --dry-run /home/user/my-project
Notes
- If the source path is not a git repo, ask whether a plain directory copy is acceptable before proceeding.
- If the destination already exists, generate a new suffix or choose a different parent directory.
More from b1tank/skills
market-research
Research existing products and competitors for a given product idea. Use when starting a new project, cloning an existing product, or analyzing competitive landscape. Returns feature analysis, gaps, and differentiation opportunities.
15diff-check
Author's cleanup checklist before committing or submitting a PR. Use before any commit or PR to ensure code is clean, focused, and ready for review. Checks for debug code, secrets, redundant changes, and scope creep.
13spec-template
9-section product specification template for defining software projects. Use when drafting a new spec.md, converting an idea into a structured specification, or reviewing spec completeness. Ensures consistent, comprehensive project definitions.
9decompose-task
Break large tasks (>100 lines) into atomic, verifiable sub-tasks. Use when a task scope is unclear, touches multiple files/modules, or exceeds comfortable single-commit size. Returns structured breakdown without implementing code.
8skill-name
Clear description of what this skill does and when to use it. Include specific triggers and contexts for when Claude should invoke this skill.
5