(由于原始内容较长,以下为简略翻译,建议根据实际需要进行完整翻译)
name: git-cli
description: Git 命令行助手...
# Git CLI 技能 — 如何工作
使用此技能当用户询问
Git 命令行 相关内容...
您的工作流
- 确认上下文:确保 Git 在 PATH 中,用户在(或将在)仓库中运行命令...
- 安全第一:偏好只读命令(
git status,git diff)...
- 提供合适的细节:...
快速参考(首选使用)
git status ·
git diff · ...
...
脚本(从仓库根目录运行)
- scripts/is-repo.sh — 检查当前目录是否为 Git 仓库...
...
资产
- assets/commit-msg-template.txt — 提交消息模板...
...
# 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
- 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.
- 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.
- 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/ (e.g.
reference/workflows.md,
reference/troubleshooting.md).
-
Automation / repeatable checks: Use or adapt scripts in
scripts/ and tell the user how to run them.
-
Templates (commit message, .gitignore): Use or copy from
assets/.
Quick Reference (use this first)
| Task | Command |
|------|--------|
| State & diff |
git status ·
git diff ·
git diff --staged ·
git diff --stat |
| Stage / unstage |
git add or
git add . ·
git restore --staged |
| 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 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 |
| Clone / init |
git clone ·
git init ·
git remote add origin |
| Remotes |
git remote -v ·
git remote show origin ·
git branch -vv |
| Discard (destructive) |
git restore (working tree) ·
git restore --staged (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 ·
git rebase · conflict → fix →
git add →
git commit or
git rebase --continue |
Where to Look
| Need | Location |
|------|----------|
| Full command list, options, examples |
reference/commands.md |
| Step-by-step workflows (branch, release, conflict) |
reference/workflows.md |
| Errors, recovery, detached HEAD, .gitignore |
reference/troubleshooting.md |
| Run checks (is repo, status summary, branch info) |
scripts/ — run from repo root |
| Commit message or .gitignore template |
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.