[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RTQV3CXBKB3WP295FNJ3R3":3,"skill-same:01M6RTQV3CXBKB3WP295FNJ3R3":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":45,"commitSha":46,"skillDirectory":5,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6RTQV3CXBKB3WP295FNJ3R3","git-commit-push",null,"Commit and push code changes to the remote repository. Use when the user wants to commit their changes and push to remote.","ZhaoYis\u002FMy-Skills","ZhaoYis","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22954818?v=4","01M6RTMA12BZDGXFDESDB627H0","大師兄丶","01M6RTMA5H8NVC8J3KZPJQF4GP",2,"MIT","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fgit-commit-push\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"commit","git commit","git","push","commit push","git commit push","cli","code","repository","commit and push","user","use","remote","git cli","changes","when","2026-11-10 10:12:30",false,"---\nname: git-commit-push\ndescription: Commit and push code changes to the remote repository. Use when the user wants to commit their changes and push to remote.\nlicense: MIT\ncompatibility: Requires git CLI and a git repository.\nmetadata:\n  author: zhaoyi\n  version: \"1.2\"\n  generatedBy: \"1.0.0\"\n---\n\nCommit and push code changes to the remote repository.\n\n**Input**: Optionally specify a commit message. If omitted, generate a meaningful commit message based on the changes.\n\n**Steps**\n\n1. **Pre-commit checks**\n\n   Run `git status` to check for:\n   - Unstaged changes\n   - Staged changes\n   - Untracked files\n\n   Run `git stash list` to check for existing stashes.\n\n   **If there are conflicts or issues:**\n   - Warn user about uncommitted changes\n   - Ask if they want to proceed or stash changes first\n\n2. **Check branch sync status**\n\n   Run `git fetch origin` to update remote tracking info.\n\n   Run `git status` to check if current branch is:\n   - Ahead of remote (needs push)\n   - Behind remote (needs pull first)\n   - Diverged (may need rebase or merge)\n\n   **If behind or diverged:**\n   - Warn user and ask how to proceed\n   - Options: Pull first, Force push (dangerous), Cancel\n\n3. **Check for sensitive files**\n\n   Scan staged files for potentially sensitive content:\n   - `.env` files\n   - Files containing `password`, `secret`, `api_key`, `token`\n   - Private key files (`.pem`, `.key`)\n   - Configuration files with credentials\n\n   **If sensitive files detected:**\n   - Warn user and show the files\n   - Ask for confirmation before proceeding\n\n4. **Stage changes**\n\n   If there are unstaged changes:\n   - Run `git add \u003Cfiles>` to stage specific files\n   - Or run `git add -A` to stage all changes\n\n   **For OpenSpec changes**: Always include openspec files:\n   - `openspec\u002Fchanges\u002Farchive\u002F` (archived changes)\n   - `openspec\u002Fspecs\u002F` (synced specs)\n   - `openspec\u002Freview\u002F` (code review reports)\n\n5. **Generate and confirm commit message**\n\n   Generate a commit message based on the changes:\n   ```\n   \u003Ctype>: \u003Cdescription>\n\n   [optional body]\n\n   Co-Authored-By: Claude Opus 4.6 \u003Cnoreply@anthropic.com>\n   ```\n\n   **Commit types**:\n   - `feat`: New feature\n   - `fix`: Bug fix\n   - `perf`: Performance improvement\n   - `refactor`: Code refactoring\n   - `docs`: Documentation\n   - `test`: Adding\u002Fupdating tests\n   - `chore`: Maintenance tasks\n   - `style`: Code style changes\n   - `ci`: CI\u002FCD changes\n\n   **Show the generated message to user for confirmation or editing.**\n\n   Use heredoc for multi-line commit messages:\n   ```bash\n   git commit -m \"$(cat \u003C\u003C'EOF'\n   \u003Ctype>: \u003Cdescription>\n\n   \u003Coptional body>\n\n   Co-Authored-By: Claude Opus 4.6 \u003Cnoreply@anthropic.com>\n   EOF\n   )\"\n   ```\n\n6. **Push to remote**\n\n   Get current branch name and push:\n   ```bash\n   git push origin \u003Ccurrent-branch>\n   ```\n\n   **If push fails:**\n   - Show error message\n   - Suggest possible solutions:\n     - Pull and retry: `git pull --rebase origin \u003Cbranch>`\n     - Check network connectivity\n     - Verify permissions\n\n7. **Display summary**\n\n   Show:\n   - Commit hash\n   - Branch name\n   - Commit message\n   - Files changed count\n   - Remote URL or MR\u002FPR creation link\n\n**Output On Success**\n\n```\n## Commit & Push Complete\n\n**Commit:** \u003Ccommit-hash>\n**Branch:** \u003Cbranch-name>\n**Message:**\n\u003Ccommit-message>\n\n**Files changed:** \u003Ccount> files (+\u003Cadditions>, -\u003Cdeletions>)\n\n**Remote:** \u003Cremote-url>\n\n**Create MR\u002FPR:** \u003Cmr\u002Fpr-creation-url>\n```\n\n**Output With Warnings**\n\n```\n## Commit & Push (with warnings)\n\n**Warnings:**\n- Branch is behind remote by X commits\n- Sensitive file detected: .env\n\n**Action taken:** Proceeded with user confirmation\n\n**Commit:** \u003Ccommit-hash>\n...\n```\n\n**Guardrails**\n\n- Always check git status before committing\n- Always check branch sync status before push\n- Warn about sensitive files before committing\n- Use conventional commit message format\n- Include Co-Authored-By line for AI-generated code\n- Never use `--no-verify` or skip hooks unless explicitly requested\n- Never force push without explicit user confirmation\n- Stage all relevant files including openspec artifacts\n- Show generated commit message for user confirmation\n\n**Error Handling**\n\n- If no changes to commit: Inform user and exit\n- If branch behind remote: Warn and suggest pull first\n- If push fails: Show error message and suggest resolution\n- If commit hooks fail: Show error and do not proceed\n- If sensitive files detected: Warn and ask for confirmation\n\n**Sensitive File Patterns**\n\nCheck for these patterns in file names:\n- `.env`, `.env.local`, `.env.*.local`\n- `*secret*`, `*password*`, `*credential*`\n- `*.pem`, `*.key`, `*.p12`, `*.jks`\n- `application-*.yml`, `application-*.properties` (if contain secrets)\n","Commit and push code changes to the remote repository.\n\n**Input**: Optionally specify a commit message. If omitted, generate a meaningful commit message based on the changes.\n\n**Steps**\n\n1. **Pre-commit checks**\n\n   Run `git status` to check for:\n   - Unstaged changes\n   - Staged changes\n   - Untracked files\n\n   Run `git stash list` to check for existing stashes.\n\n   **If there are conflicts or issues:**\n   - Warn user about uncommitted changes\n   - Ask if they want to proceed or stash changes first\n\n2. **Check branch sync status**\n\n   Run `git fetch origin` to update remote tracking info.\n\n   Run `git status` to check if current branch is:\n   - Ahead of remote (needs push)\n   - Behind remote (needs pull first)\n   - Diverged (may need rebase or merge)\n\n   **If behind or diverged:**\n   - Warn user and ask how to proceed\n   - Options: Pull first, Force push (dangerous), Cancel\n\n3. **Check for sensitive files**\n\n   Scan staged files for potentially sensitive content:\n   - `.env` files\n   - Files containing `password`, `secret`, `api_key`, `token`\n   - Private key files (`.pem`, `.key`)\n   - Configuration files with credentials\n\n   **If sensitive files detected:**\n   - Warn user and show the files\n   - Ask for confirmation before proceeding\n\n4. **Stage changes**\n\n   If there are unstaged changes:\n   - Run `git add \u003Cfiles>` to stage specific files\n   - Or run `git add -A` to stage all changes\n\n   **For OpenSpec changes**: Always include openspec files:\n   - `openspec\u002Fchanges\u002Farchive\u002F` (archived changes)\n   - `openspec\u002Fspecs\u002F` (synced specs)\n   - `openspec\u002Freview\u002F` (code review reports)\n\n5. **Generate and confirm commit message**\n\n   Generate a commit message based on the changes:\n   ```\n   \u003Ctype>: \u003Cdescription>\n\n   [optional body]\n\n   Co-Authored-By: Claude Opus 4.6 \u003Cnoreply@anthropic.com>\n   ```\n\n   **Commit types**:\n   - `feat`: New feature\n   - `fix`: Bug fix\n   - `perf`: Performance improvement\n   - `refactor`: Code refactoring\n   - `docs`: Documentation\n   - `test`: Adding\u002Fupdating tests\n   - `chore`: Maintenance tasks\n   - `style`: Code style changes\n   - `ci`: CI\u002FCD changes\n\n   **Show the generated message to user for confirmation or editing.**\n\n   Use heredoc for multi-line commit messages:\n   ```bash\n   git commit -m \"$(cat \u003C\u003C'EOF'\n   \u003Ctype>: \u003Cdescription>\n\n   \u003Coptional body>\n\n   Co-Authored-By: Claude Opus 4.6 \u003Cnoreply@anthropic.com>\n   EOF\n   )\"\n   ```\n\n6. **Push to remote**\n\n   Get current branch name and push:\n   ```bash\n   git push origin \u003Ccurrent-branch>\n   ```\n\n   **If push fails:**\n   - Show error message\n   - Suggest possible solutions:\n     - Pull and retry: `git pull --rebase origin \u003Cbranch>`\n     - Check network connectivity\n     - Verify permissions\n\n7. **Display summary**\n\n   Show:\n   - Commit hash\n   - Branch name\n   - Commit message\n   - Files changed count\n   - Remote URL or MR\u002FPR creation link\n\n**Output On Success**\n\n```\n## Commit & Push Complete\n\n**Commit:** \u003Ccommit-hash>\n**Branch:** \u003Cbranch-name>\n**Message:**\n\u003Ccommit-message>\n\n**Files changed:** \u003Ccount> files (+\u003Cadditions>, -\u003Cdeletions>)\n\n**Remote:** \u003Cremote-url>\n\n**Create MR\u002FPR:** \u003Cmr\u002Fpr-creation-url>\n```\n\n**Output With Warnings**\n\n```\n## Commit & Push (with warnings)\n\n**Warnings:**\n- Branch is behind remote by X commits\n- Sensitive file detected: .env\n\n**Action taken:** Proceeded with user confirmation\n\n**Commit:** \u003Ccommit-hash>\n...\n```\n\n**Guardrails**\n\n- Always check git status before committing\n- Always check branch sync status before push\n- Warn about sensitive files before committing\n- Use conventional commit message format\n- Include Co-Authored-By line for AI-generated code\n- Never use `--no-verify` or skip hooks unless explicitly requested\n- Never force push without explicit user confirmation\n- Stage all relevant files including openspec artifacts\n- Show generated commit message for user confirmation\n\n**Error Handling**\n\n- If no changes to commit: Inform user and exit\n- If branch behind remote: Warn and suggest pull first\n- If push fails: Show error message and suggest resolution\n- If commit hooks fail: Show error and do not proceed\n- If sensitive files detected: Warn and ask for confirmation\n\n**Sensitive File Patterns**\n\nCheck for these patterns in file names:\n- `.env`, `.env.local`, `.env.*.local`\n- `*secret*`, `*password*`, `*credential*`\n- `*.pem`, `*.key`, `*.p12`, `*.jks`\n- `application-*.yml`, `application-*.properties` (if contain secrets)\n",{"name":5,"license":15,"metadata":40,"description":7,"compatibility":44},{"author":41,"version":42,"generatedBy":43},"zhaoyi","1.2","1.0.0","Requires git CLI and a git repository.","main","f1f3386d8df37cca07033d73addfae1eb9968c30",0,"https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills","https:\u002F\u002Fopsx.dsx.plus","https:\u002F\u002Fgithub.com\u002FZhaoYis","http:\u002F\u002Fwww.cnblogs.com\u002Fzhao-yi","2026-10-08 22:53:14",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ZhaoYis\u002FMy-Skills --skill git-commit-push",{"tool":59,"command":60},"bunx","bunx skills add ZhaoYis\u002FMy-Skills --skill git-commit-push",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ZhaoYis\u002FMy-Skills --skill git-commit-push","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fgit-commit-push\u002FSKILL.md",true,[],[68,89,103,122,142,165],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":35},"01M6RTSEX8VAMKNV3PYC3TCX05","opsx-dev-pipeline","OpenSpec + Git 需求开发全流程。","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fopsx-dev-pipeline\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[80,81,82,83,32,84,85,86,87,21,88,25],"opsx dev pipeline","dev pipeline","pipeline","dev","openspec","schema","cursor","yaml","config",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":35},"01M6RTQZM2W4D883XGA5B23RF4","git-merge-branch","Merge current branch to a target branch. Use when the user wants to merge their current branch to another branch (e.g., qa, master, develop).","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fgit-merge-branch\u002FSKILL.md",[],[96,21,97,98,99,34,25,100,27,101,29,30,102,32],"branch","git merge","merge","git merge branch","qa","develop","master",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":115,"publishedAt":35},"01M6RTQMV7BCRR39HMC7G8F03J","git-code-review","Review uncommitted or committed changes in the current branch and generate a code review report. Use when the user wants to review their changes before or after committing.","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fgit-code-review\u002FSKILL.md",[109,114],{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[116,21,26,117,118,25,119,120,33,27,96,29,30,32,121,34],"git code review","review","code review","generate","report","review report",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":130,"publishedAt":35},"01M6RTQ2V53GDEYSY384BJ15S8","file-code-review","Review specified files or code snippets against project conventions and generate a code review report. Use when the user wants to review specific files (e.g., \"review this file\", \"审查这个文件\") or code blocks (e.g., \"review this code\", \"审查这段代码\") without git context. Supports single file, multiple files, or pasted code snippets.","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Ffile-code-review\u002FSKILL.md",[128,129],{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[117,118,26,131,132,133,34,120,121,134,135,136,137,138,139,30,21,140,119,141],"file","file code review","project","文件","blocks","requirements","snippets","conventions","files","single","project conventions",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":35},"01M6RTPNWT66XGYW8S9KXM3W66","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fdev-pipeline\u002F.claude\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[149,84,150,30,151,152,153,154,155,25,156,157,34,158,159,160,161,162,163,164],"openspec propose","ready","generated","Bash","artifacts","tasks","change","design","implementation","describe","for","with","proposal","complete","get","build",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":35},"01M6RTP3C3EVKHXAMW2E8ZB4G0","openspec-explore","Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","https:\u002F\u002Fgithub.com\u002FZhaoYis\u002FMy-Skills\u002Fblob\u002Fmain\u002Fdev-pipeline\u002F.claude\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[84,172,173,174,34,159,175,136,176,177,178,179,30,29,152,155,25],"explore","openspec explore","mode","partner","ideas","thinking","thinking partner","think"]