Git Workflow Assistant

Expert-level Git workflow guidance covering branching strategies, commit conventions, merge/rebase workflows, conflict resolution, and CI/CD integration. Use when the user needs help with: (1) Choosing a branching strategy (GitFlow, GitHub Flow, trunk-based), (2) Writing conventional commits, (3) Resolving merge conflicts, (4) Interactive rebase and squashing, (5) Git hooks and automation, (6) Submodules and monorepos, (7) Recovering from mistakes (reset, reflog, amend).

Audits

Pass

Install

openclaw skills install eric-git-workflow

Git Workflow Assistant

Branching Strategies

When to use what:

StrategyBest forKey structures
GitHub FlowContinuous deployment, small teamsmain + feature branches → PR → deploy
GitFlowRelease cycles, multiple versionsmaindevelopfeature/*release/*hotfix/*
Trunk-basedCI/CD, large teamsShort-lived feature branches → merge to main daily
GitLab FlowEnvironments per branchmainpre-productionproduction

Commit conventions

Follow Conventional Commits: <type>(<scope>): <description>

feat: add user authentication
fix(api): handle null response from payment gateway
chore(deps): upgrade express to 4.18
docs(readme): update installation guide
refactor(db): extract query builder
test(auth): add login flow tests

Common Workflows

Feature branch → PR

git checkout -b feat/my-feature main
# ... code, commits ...
git push -u origin feat/my-feature
# → Open PR on GitHub/GitLab/Azure DevOps

Rebase before merge (linear history)

git fetch origin
git rebase origin/main
# fix conflicts if any
git push --force-with-lease

Interactive rebase (squash/split)

git rebase -i HEAD~3
# pick, squash, reword, edit as needed
git push --force-with-lease

Conflict Resolution

Strategy:

  1. git merge <branch> → resolve conflicts in files
  2. Mark resolved: git add <file>
  3. Continue: git merge --continue

For rebase conflicts:

git rebase --continue   # after resolving each step
git rebase --abort      # to cancel
git rebase --skip       # to skip a commit

Recovery

  • Undo last commit (keep changes): git reset --soft HEAD~1
  • Undo last commit (discard changes): git reset --hard HEAD~1
  • Recover deleted branch: git reflog → find SHA → git checkout -b <branch> <sha>
  • Undo a pushed commit: git revert <sha> (safe for shared branches)

Useful Aliases

git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.undo "reset --soft HEAD~1"
git config --global alias.amend "commit --amend --no-edit"

References

See references/workflows.md for detailed workflow patterns.