{
  "schemaVersion": "1.0",
  "item": {
    "slug": "git",
    "name": "Git (Essentials + Workflows + Advanced)",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/git",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/git",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/git",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=git",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "advanced.md",
      "branching.md",
      "collaboration.md",
      "commands.md",
      "conflicts.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/git"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/git",
    "agentPageUrl": "https://openagent3.xyz/skills/git/agent",
    "manifestUrl": "https://openagent3.xyz/skills/git/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/git/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to Use",
        "body": "Use when the task involves Git repositories, branches, commits, merges, rebases, pull requests, conflict resolution, history inspection, or recovery. This skill is stateless and should be applied by default whenever Git work is part of the job."
      },
      {
        "title": "Quick Reference",
        "body": "TopicFileEssential commandscommands.mdAdvanced operationsadvanced.mdBranch strategiesbranching.mdConflict resolutionconflicts.mdHistory and recoveryhistory.mdTeam workflowscollaboration.md"
      },
      {
        "title": "Core Rules",
        "body": "Never force push to shared branches — Use --force-with-lease on feature branches only\nCommit early, commit often — Small commits are easier to review, revert, and bisect\nWrite meaningful commit messages — First line under 72 chars, imperative mood\nPull before push — Always git pull --rebase before pushing to avoid merge commits\nClean up before merging — Use git rebase -i to squash fixup commits"
      },
      {
        "title": "Team Workflows",
        "body": "Feature Branch Flow:\n\ngit checkout -b feature/name from main\nMake commits, push regularly\nOpen PR, get review\nSquash and merge to main\nDelete feature branch\n\nHotfix Flow:\n\ngit checkout -b hotfix/issue from main\nFix, test, commit\nMerge to main AND develop (if exists)\nTag the release\n\nDaily Sync:\n\ngit fetch --all --prune\ngit rebase origin/main  # or merge if team prefers"
      },
      {
        "title": "Commit Messages",
        "body": "Use conventional commit format: type(scope): description\nKeep first line under 72 characters\nTypes: feat, fix, docs, style, refactor, test, chore"
      },
      {
        "title": "Push Safety",
        "body": "Use git push --force-with-lease instead of --force — prevents overwriting others' work\nIf push rejected, run git pull --rebase before retrying\nNever force push to main/master branch"
      },
      {
        "title": "Conflict Resolution",
        "body": "After editing conflicted files, verify no markers remain: grep -r \"<<<\\|>>>\\|===\" .\nTest that code builds before completing merge\nIf merge becomes complex, abort with git merge --abort and try git rebase instead"
      },
      {
        "title": "Branch Hygiene",
        "body": "Delete merged branches locally: git branch -d branch-name\nClean remote tracking: git fetch --prune\nBefore creating PR, rebase feature branch onto latest main\nUse git rebase -i to squash messy commits before pushing"
      },
      {
        "title": "Safety Checklist",
        "body": "Before destructive operations (reset --hard, rebase, force push):\n\nIs this a shared branch? → Don't rewrite history\n Do I have uncommitted changes? → Stash or commit first\n Am I on the right branch? → git branch to verify\n Is remote up to date? → git fetch first"
      },
      {
        "title": "Common Traps",
        "body": "git user.email wrong — Verify with git config user.email before important commits\nEmpty directories — Git doesn't track them, add .gitkeep\nSubmodules — Always clone with --recurse-submodules\nDetached HEAD — Use git switch - to return to previous branch\nPush rejected — Usually needs git pull --rebase first\nstash pop on conflict — Stash disappears. Use stash apply instead\nLarge files — Use Git LFS for files >50MB, never commit secrets\nCase sensitivity — Mac/Windows ignore case, Linux doesn't — causes CI failures"
      },
      {
        "title": "Recovery Commands",
        "body": "Undo last commit keeping changes: git reset --soft HEAD~1\nDiscard unstaged changes: git restore filename\nFind lost commits: git reflog (keeps ~90 days of history)\nRecover deleted branch: git checkout -b branch-name <sha-from-reflog>\nUse git add -p for partial staging when commit mixes multiple changes"
      },
      {
        "title": "Debugging with Bisect",
        "body": "Find the commit that introduced a bug:\n\ngit bisect start\ngit bisect bad                    # current commit is broken\ngit bisect good v1.0.0            # this version worked\n# Git checks out middle commit, test it, then:\ngit bisect good                   # or git bisect bad\n# Repeat until Git finds the culprit\ngit bisect reset                  # return to original branch"
      },
      {
        "title": "Quick Summary",
        "body": "git status -sb                    # short status with branch\ngit log --oneline -5              # last 5 commits\ngit shortlog -sn                  # contributors by commit count\ngit diff --stat HEAD~5            # changes summary last 5 commits\ngit branch -vv                    # branches with tracking info\ngit stash list                    # pending stashes"
      },
      {
        "title": "Related Skills",
        "body": "Install with clawhub install <slug> if user confirms:\n\ngitlab — GitLab CI/CD and merge requests\ndocker — Containerization workflows\ncode — Code quality and best practices"
      },
      {
        "title": "Feedback",
        "body": "If useful: clawhub star git\nStay updated: clawhub sync"
      }
    ],
    "body": "When to Use\n\nUse when the task involves Git repositories, branches, commits, merges, rebases, pull requests, conflict resolution, history inspection, or recovery. This skill is stateless and should be applied by default whenever Git work is part of the job.\n\nQuick Reference\nTopic\tFile\nEssential commands\tcommands.md\nAdvanced operations\tadvanced.md\nBranch strategies\tbranching.md\nConflict resolution\tconflicts.md\nHistory and recovery\thistory.md\nTeam workflows\tcollaboration.md\nCore Rules\nNever force push to shared branches — Use --force-with-lease on feature branches only\nCommit early, commit often — Small commits are easier to review, revert, and bisect\nWrite meaningful commit messages — First line under 72 chars, imperative mood\nPull before push — Always git pull --rebase before pushing to avoid merge commits\nClean up before merging — Use git rebase -i to squash fixup commits\nTeam Workflows\n\nFeature Branch Flow:\n\ngit checkout -b feature/name from main\nMake commits, push regularly\nOpen PR, get review\nSquash and merge to main\nDelete feature branch\n\nHotfix Flow:\n\ngit checkout -b hotfix/issue from main\nFix, test, commit\nMerge to main AND develop (if exists)\nTag the release\n\nDaily Sync:\n\ngit fetch --all --prune\ngit rebase origin/main  # or merge if team prefers\n\nCommit Messages\nUse conventional commit format: type(scope): description\nKeep first line under 72 characters\nTypes: feat, fix, docs, style, refactor, test, chore\nPush Safety\nUse git push --force-with-lease instead of --force — prevents overwriting others' work\nIf push rejected, run git pull --rebase before retrying\nNever force push to main/master branch\nConflict Resolution\nAfter editing conflicted files, verify no markers remain: grep -r \"<<<\\|>>>\\|===\" .\nTest that code builds before completing merge\nIf merge becomes complex, abort with git merge --abort and try git rebase instead\nBranch Hygiene\nDelete merged branches locally: git branch -d branch-name\nClean remote tracking: git fetch --prune\nBefore creating PR, rebase feature branch onto latest main\nUse git rebase -i to squash messy commits before pushing\nSafety Checklist\n\nBefore destructive operations (reset --hard, rebase, force push):\n\n Is this a shared branch? → Don't rewrite history\n Do I have uncommitted changes? → Stash or commit first\n Am I on the right branch? → git branch to verify\n Is remote up to date? → git fetch first\nCommon Traps\ngit user.email wrong — Verify with git config user.email before important commits\nEmpty directories — Git doesn't track them, add .gitkeep\nSubmodules — Always clone with --recurse-submodules\nDetached HEAD — Use git switch - to return to previous branch\nPush rejected — Usually needs git pull --rebase first\nstash pop on conflict — Stash disappears. Use stash apply instead\nLarge files — Use Git LFS for files >50MB, never commit secrets\nCase sensitivity — Mac/Windows ignore case, Linux doesn't — causes CI failures\nRecovery Commands\nUndo last commit keeping changes: git reset --soft HEAD~1\nDiscard unstaged changes: git restore filename\nFind lost commits: git reflog (keeps ~90 days of history)\nRecover deleted branch: git checkout -b branch-name <sha-from-reflog>\nUse git add -p for partial staging when commit mixes multiple changes\nDebugging with Bisect\n\nFind the commit that introduced a bug:\n\ngit bisect start\ngit bisect bad                    # current commit is broken\ngit bisect good v1.0.0            # this version worked\n# Git checks out middle commit, test it, then:\ngit bisect good                   # or git bisect bad\n# Repeat until Git finds the culprit\ngit bisect reset                  # return to original branch\n\nQuick Summary\ngit status -sb                    # short status with branch\ngit log --oneline -5              # last 5 commits\ngit shortlog -sn                  # contributors by commit count\ngit diff --stat HEAD~5            # changes summary last 5 commits\ngit branch -vv                    # branches with tracking info\ngit stash list                    # pending stashes\n\nRelated Skills\n\nInstall with clawhub install <slug> if user confirms:\n\ngitlab — GitLab CI/CD and merge requests\ndocker — Containerization workflows\ncode — Code quality and best practices\nFeedback\nIf useful: clawhub star git\nStay updated: clawhub sync"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/git",
    "publisherUrl": "https://clawhub.ai/ivangdavila/git",
    "owner": "ivangdavila",
    "version": "1.0.8",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/git",
    "downloadUrl": "https://openagent3.xyz/downloads/git",
    "agentUrl": "https://openagent3.xyz/skills/git/agent",
    "manifestUrl": "https://openagent3.xyz/skills/git/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/git/agent.md"
  }
}