Skill: openlang-cn/git-cli (version 1.0.1)

--- name: git-cli description: Helper for using the Git CLI to inspect, stage, commit, branch, and synchronize code changes. Use when the user wants to understand or perform Git operations from the command line, including safe status checks, diffs, branching, stashing, and syncing with remotes. --- # Git CLI Skill — How to Work Use this skill when the user asks about **Git from the command line**: what changed, staging/committing, branching, push/pull, stashing, history, tags, merge/rebase, or cloning. ## Your Workflow 1. **Confirm context**: Ensure Git is on PATH and the user is in (or will run commands in) a repo. If unsure, suggest `git status` or run `scripts/is-repo.sh` from the skill directory. 2. **Safety first**: Prefer read-only commands (`git status`, `git diff`, `git log`). Do not suggest destructive commands (`git reset --hard`, `git clean -fdx`, `git push --force`) unless the user explicitly asks and understands the risk. For recovery, use `git reflog` to find a commit before suggesting reset/checkout. 3. **Give the right level of detail**: - **Quick answer**: Use the Quick Reference table below and reply with the exact command(s). - **Step-by-step or edge cases**: Point to or quote from [reference/](reference/) (e.g. [reference/workflows.md](reference/workflows.md), [reference/troubleshooting.md](reference/troubleshooting.md)). - **Automation / repeatable checks**: Use or adapt scripts in [scripts/](scripts/) and tell the user how to run them. - **Templates** (commit message, .gitignore): Use or copy from [assets/](assets/). ## Quick Reference (use this first) | Task | Command | |------|--------| | State & diff | `git status` · `git diff` · `git diff --staged` · `git diff --stat` | | Stage / unstage | `git add <path>` or `git add .` · `git restore --staged <path>` | | Commit | `git commit -m "message"` | | Branch | `git branch` · `git branch -a` · `git switch -c new` · `git switch existing` | | Sync remote | `git fetch` · `git pull` · `git push -u origin <branch>` then `git push` | | Stash | `git stash` · `git stash list` · `git stash apply` / `git stash pop` | | History | `git log --oneline --decorate --graph -n 20` · `git blame <file>` | | Clone / init | `git clone <url>` · `git init` · `git remote add origin <url>` | | Remotes | `git remote -v` · `git remote show origin` · `git branch -vv` | | Discard (destructive) | `git restore <file>` (working tree) · `git restore --staged <file>` (unstage) | | Amend | `git commit --amend --no-edit` or `-m "message"` | | Tags | `git tag` · `git tag v1.0` · `git push origin v1.0` or `--tags` | | Merge / rebase | `git merge <branch>` · `git rebase <branch>` · conflict → fix → `git add` → `git commit` or `git rebase --continue` | ## Where to Look | Need | Location | |------|----------| | Full command list, options, examples | [reference/commands.md](reference/commands.md) | | Step-by-step workflows (branch, release, conflict) | [reference/workflows.md](reference/workflows.md) | | Errors, recovery, detached HEAD, .gitignore | [reference/troubleshooting.md](reference/troubleshooting.md) | | Run checks (is repo, status summary, branch info) | [scripts/](scripts/) — run from repo root | | Commit message or .gitignore template | [assets/](assets/) | ## Scripts (run from repository root) - **scripts/is-repo.sh** — Exit 0 if current dir is a Git repo, else 1. Use to confirm context before suggesting commands. - **scripts/status-summary.sh** — Short status + branch + last commit. Use when user asks "what’s my current state?" - **scripts/branch-list.sh** — Local and remote branches with upstream. Use when user asks about branches or push target. On Windows: run in Git Bash or WSL (e.g. `bash scripts/status-summary.sh`). ## Assets - **assets/commit-msg-template.txt** — Template for conventional or structured commit messages; suggest when user asks for commit message format. - **assets/gitignore-common.txt** — Common .gitignore patterns; suggest when user has many untracked files or asks for .gitignore examples. When the user needs a diagram (e.g. branch/merge flow), describe it in text or point to reference; only create or reference images in assets/ if the user explicitly asks for a visual.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)