init
This commit is contained in:
52
.opencode/skills/git/references/workflow-push.md
Normal file
52
.opencode/skills/git/references/workflow-push.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Push Workflow
|
||||
|
||||
Execute via `git-manager` subagent.
|
||||
|
||||
## Pre-Push Checklist
|
||||
1. All changes committed
|
||||
2. Secrets scanned (see `safety-protocols.md`)
|
||||
3. Branch pushed to remote
|
||||
|
||||
## Tool 1: Verify State
|
||||
```bash
|
||||
git status && \
|
||||
git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline 2>/dev/null || echo "NO_UPSTREAM"
|
||||
```
|
||||
|
||||
**If uncommitted changes:** Warn user, suggest commit first.
|
||||
**If NO_UPSTREAM:** Use `git push -u origin HEAD`.
|
||||
|
||||
## Tool 2: Push
|
||||
```bash
|
||||
git push origin HEAD
|
||||
```
|
||||
|
||||
**On success:** Report commit hashes pushed.
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Error | Cause | Solution |
|
||||
|-------|-------|----------|
|
||||
| `rejected - non-fast-forward` | Remote has newer commits | `git pull --rebase`, resolve conflicts, push again |
|
||||
| `no upstream branch` | Branch not tracked | `git push -u origin HEAD` |
|
||||
| `Authentication failed` | Invalid credentials | Check `gh auth status` or SSH keys |
|
||||
| `Repository not found` | Wrong remote URL | Verify `git remote -v` |
|
||||
| `Permission denied` | No write access | Check repository permissions |
|
||||
|
||||
## Force Push (DANGER)
|
||||
|
||||
**NEVER force push to main/master/production branches.**
|
||||
|
||||
If user explicitly requests force push on feature branch:
|
||||
```bash
|
||||
git push -f origin HEAD
|
||||
```
|
||||
|
||||
**Warn user:** "Force push rewrites history. Collaborators may lose work."
|
||||
|
||||
## Output Format
|
||||
```
|
||||
✓ pushed: N commits to origin/{branch}
|
||||
- abc123 feat(auth): add login
|
||||
- def456 fix(api): resolve timeout
|
||||
```
|
||||
Reference in New Issue
Block a user