Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "commit-commands",
|
||||||
|
"description": "Commands for git commit workflows including commit, push, and PR creation",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Anthropic",
|
||||||
|
"email": "support@anthropic.com"
|
||||||
|
},
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# commit-commands
|
||||||
|
|
||||||
|
Commands for git commit workflows including commit, push, and PR creation
|
||||||
53
commands/clean_gone.md
Normal file
53
commands/clean_gone.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
description: Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.
|
||||||
|
---
|
||||||
|
|
||||||
|
## Your Task
|
||||||
|
|
||||||
|
You need to execute the following bash commands to clean up stale local branches that have been deleted from the remote repository.
|
||||||
|
|
||||||
|
## Commands to Execute
|
||||||
|
|
||||||
|
1. **First, list branches to identify any with [gone] status**
|
||||||
|
Execute this command:
|
||||||
|
```bash
|
||||||
|
git branch -v
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: Branches with a '+' prefix have associated worktrees and must have their worktrees removed before deletion.
|
||||||
|
|
||||||
|
2. **Next, identify worktrees that need to be removed for [gone] branches**
|
||||||
|
Execute this command:
|
||||||
|
```bash
|
||||||
|
git worktree list
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Finally, remove worktrees and delete [gone] branches (handles both regular and worktree branches)**
|
||||||
|
Execute this command:
|
||||||
|
```bash
|
||||||
|
# Process all [gone] branches, removing '+' prefix if present
|
||||||
|
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
|
||||||
|
echo "Processing branch: $branch"
|
||||||
|
# Find and remove worktree if it exists
|
||||||
|
worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}')
|
||||||
|
if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then
|
||||||
|
echo " Removing worktree: $worktree"
|
||||||
|
git worktree remove --force "$worktree"
|
||||||
|
fi
|
||||||
|
# Delete the branch
|
||||||
|
echo " Deleting branch: $branch"
|
||||||
|
git branch -D "$branch"
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
After executing these commands, you will:
|
||||||
|
|
||||||
|
- See a list of all local branches with their status
|
||||||
|
- Identify and remove any worktrees associated with [gone] branches
|
||||||
|
- Delete all branches marked as [gone]
|
||||||
|
- Provide feedback on which worktrees and branches were removed
|
||||||
|
|
||||||
|
If no branches are marked as [gone], report that no cleanup was needed.
|
||||||
|
|
||||||
20
commands/commit-push-pr.md
Normal file
20
commands/commit-push-pr.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
allowed-tools: Bash(git checkout --branch:*), Bash(git add:*), Bash(git status:*), Bash(git push:*), Bash(git commit:*), Bash(gh pr create:*)
|
||||||
|
description: Commit, push, and open a PR
|
||||||
|
---
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
- Current git status: !`git status`
|
||||||
|
- Current git diff (staged and unstaged changes): !`git diff HEAD`
|
||||||
|
- Current branch: !`git branch --show-current`
|
||||||
|
|
||||||
|
## Your task
|
||||||
|
|
||||||
|
Based on the above changes:
|
||||||
|
|
||||||
|
1. Create a new branch if on main
|
||||||
|
2. Create a single commit with an appropriate message
|
||||||
|
3. Push the branch to origin
|
||||||
|
4. Create a pull request using `gh pr create`
|
||||||
|
5. You have the capability to call multiple tools in a single response. You MUST do all of the above in a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.
|
||||||
17
commands/commit.md
Normal file
17
commands/commit.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
|
||||||
|
description: Create a git commit
|
||||||
|
---
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
- Current git status: !`git status`
|
||||||
|
- Current git diff (staged and unstaged changes): !`git diff HEAD`
|
||||||
|
- Current branch: !`git branch --show-current`
|
||||||
|
- Recent commits: !`git log --oneline -10`
|
||||||
|
|
||||||
|
## Your task
|
||||||
|
|
||||||
|
Based on the above changes, create a single git commit.
|
||||||
|
|
||||||
|
You have the capability to call multiple tools in a single response. Stage and create the commit using a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.
|
||||||
53
plugin.lock.json
Normal file
53
plugin.lock.json
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:syeeel/claude-code-go-template:plugins/commit-commands",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "3e52d0f4305e9ca6e2b2926f7e3ce89d2d1afff0",
|
||||||
|
"treeHash": "6f78f5f4d0a85ed9da77d5855c5c6c157771192a82db5bdb5999bcd9c5fa5dce",
|
||||||
|
"generatedAt": "2025-11-28T10:28:29.151441Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "commit-commands",
|
||||||
|
"description": "Commands for git commit workflows including commit, push, and PR creation",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "8ad1ae67eed654dbcd00d1191502faac729b05ca7c1b3167683b8aaba3a70f90"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "24210d1694a24c6633d4d3cac8f20efdd238f9225b625bcda81169a288456d38"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/commit-push-pr.md",
|
||||||
|
"sha256": "3bc3d171939149cbbef141cbced553dce6ba6f97dac4a764f4ef1e055c35064d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/clean_gone.md",
|
||||||
|
"sha256": "4f07fa2ccf4f81a69c6455bdc563b53a3d3b20aea6e4e82337c52b172ee02344"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/commit.md",
|
||||||
|
"sha256": "d1acbc2bf0c50164f48d6bda872de6a343cd9390954ce903c3431c3119e7f8c4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "6f78f5f4d0a85ed9da77d5855c5c6c157771192a82db5bdb5999bcd9c5fa5dce"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user