agentsclimarketplace

Git workflow

Skill Dqz00116/skill-lib/git-workflow

A curated collection of reusable AI Agent Skills for standardized workflows, best practices, and domain expertise.

Install
npx -y skills add Dqz00116/skill-lib --skill git-workflow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when committing code, pushing changes, or managing Git operations that require safety checks

SKILL.md

4.7 KB, as published. Nobody here has run it

Git Workflow Skill

Overview

Automate Git operations with safety checks and user confirmation. This skill ensures changes are reviewed and explicitly approved before committing or pushing.

When to Use

  1. Checks Workspace Status

    • Shows modified files
    • Lists untracked files
    • Detects conflicts or merge states
  2. Smart Confirmation Prompt

    • Lists all changes clearly
    • Asks for explicit approval
    • Provides multiple options (commit all, specific files, ignore, skip)
  3. Safe Commit & Push

    • Only commits after confirmation
    • Handles GitHub authentication
    • Reports success or failure
  4. Conflict Detection

    • Detects merge conflicts
    • Suggests resolution steps
    • Prevents force pushes

When NOT to use:

  • When you need automated/unattended commits without user interaction
  • When performing complex Git operations beyond standard commit/push workflows
  • When a different skill or tool is explicitly designated for Git operations

Quick Start

Simple Commit

python scripts/git_commit.py

The script will:

  1. Show git status
  2. Ask for confirmation
  3. Commit and push if approved

Interactive Mode

python scripts/git_commit.py --interactive

Step-by-step confirmation for each file.

Confirmation Format

πŸ“‹ **Git Status Summary:**
Modified:
  - SOUL.md (41 insertions)
  - README.md (5 deletions)

Untracked:
  - new-feature.md
  - temp.log (should be ignored?)

βœ… **Confirm:** 
  Reply:
  - "yes" β†’ commit all modified
  - "commit with untracked" β†’ commit all including untracked
  - "only SOUL.md" β†’ commit specific file
  - "ignore temp.log" β†’ add to .gitignore
  - "skip" β†’ do nothing

Safety Rules

Never

  • ❌ Commit without checking status first
  • ❌ Commit without user confirmation
  • ❌ Force push (git push -f)
  • ❌ Commit binary/temporary files without asking

Always

  • βœ… Check git status before any operation
  • βœ… Show list of changes for approval
  • βœ… Respect .gitignore
  • βœ… Handle errors gracefully
  • βœ… Report what was done

Usage Examples

Example 1: Simple Workflow

$ python scripts/git_commit.py

πŸ“Š Git Status:
 M SOUL.md
?? new-file.md

πŸ“‹ Changes Summary:
Modified: SOUL.md
Untracked: new-file.md

βœ… Confirm: Reply "yes" to commit modified, "commit with untracked" for all, or specify files
> yes

πŸ“ Commit message: Update SOUL.md

βœ… Committed: a1b2c3d Update SOUL.md
πŸš€ Pushed to origin/main

Example 2: With Untracked Files

$ python scripts/git_commit.py

πŸ“Š Git Status:
 M README.md
?? temp.log
?? important.md

πŸ“‹ Changes Summary:
Modified: README.md
Untracked: temp.log, important.md

βœ… Confirm: What to commit?
> commit with untracked

⚠️  temp.log looks like a temporary file. Add to .gitignore instead?
> yes

πŸ“ Commit message: Update README and add important docs

βœ… Committed: b2c3d4e Update README and add important docs
πŸš€ Pushed to origin/main

Example 3: Skip Everything

$ python scripts/git_commit.py

πŸ“Š Git Status:
 M SOUL.md

πŸ“‹ Changes Summary:
Modified: SOUL.md

βœ… Confirm: Reply "yes" to commit
> skip

⏹️  Skipped. No changes committed.

Handling Edge Cases

Merge Conflicts

⚠️  **Merge Conflict Detected!**

Conflicted files:
  - README.md
  - config.yaml

Cannot commit until conflicts are resolved.

Suggested steps:
1. Edit files to resolve conflicts
2. Run: git add <resolved-files>
3. Run this script again

Diverged Branches

⚠️  **Local branch is behind remote**

Run: git pull origin main first?
> yes

Pulling latest changes...
[...]

βœ… Now you can commit your changes.

Authentication Issues

❌ **Push Failed: Authentication Error**

Possible causes:
- SSH key not configured
- Token expired
- Wrong remote URL

Suggested fixes:
1. Check: git remote -v
2. Test: ssh -T [email protected]
3. Or use HTTPS with token

Best Practices

  1. Check before committing: Always review changes
  2. Write clear messages: Describe what and why
  3. Commit related changes: One logical change per commit
  4. Don't commit secrets: Check for API keys, passwords
  5. Keep commits small: Easier to review and revert

Troubleshooting

"nothing to commit"

# Check if files are actually modified
git status

# Check if in git repository
git rev-parse --git-dir

"Permission denied"

# Check SSH key
ssh -T [email protected]

# Or use HTTPS
git remote set-url origin https://github.com/username/repo.git

"failed to push"

# Pull first
git pull origin main

# Resolve any conflicts
# Then commit again

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.