Git cli

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...

openlang

@openlang-cn

Install

$ openclaw skills install @openlang-cn/git-cli

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/ (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)

TaskCommand
State & diffgit status · git diff · git diff --staged · git diff --stat
Stage / unstagegit add <path> or git add . · git restore --staged <path>
Commitgit commit -m "message"
Branchgit branch · git branch -a · git switch -c new · git switch existing
Sync remotegit fetch · git pull · git push -u origin <branch> then git push
Stashgit stash · git stash list · git stash apply / git stash pop
Historygit log --oneline --decorate --graph -n 20 · git blame <file>
Clone / initgit clone <url> · git init · git remote add origin <url>
Remotesgit remote -v · git remote show origin · git branch -vv
Discard (destructive)git restore <file> (working tree) · git restore --staged <file> (unstage)
Amendgit commit --amend --no-edit or -m "message"
Tagsgit tag · git tag v1.0 · git push origin v1.0 or --tags
Merge / rebasegit merge <branch> · git rebase <branch> · conflict → fix → git addgit commit or git rebase --continue

Where to Look

NeedLocation
Full command list, options, examplesreference/commands.md
Step-by-step workflows (branch, release, conflict)reference/workflows.md
Errors, recovery, detached HEAD, .gitignorereference/troubleshooting.md
Run checks (is repo, status summary, branch info)scripts/ — run from repo root
Commit message or .gitignore templateassets/

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.

Top skills in this category