git-control · git:20260520.517d198 · 2026-05-20 · sha256 36db5738c1eceb97

git-control git:20260520.517d198A

Immutable. This exact content is served forever at /api/v1/blob/36db5738c1eceb97.

---
name: Git Control
description: Standardizes git operations, branch management, and disaster recovery to ensure high-fidelity version control.
---

# Git Control Skill

## When to Use

- Whenever performing version control operations.
- When creating new features, fixing bugs, or managing releases.
- For resolving merge conflicts or recovering from mistakes.

## 1. Core Workflow

### Branching Strategy

- **Main Branch**: Production-ready code only.
- **Feature Branches**: `feat/[feature-name]` for new functionality.
- **Bug Fix Branches**: `fix/[bug-name]` for corrections.
- **Hotfix Branches**: `hotfix/[issue]` for urgent production fixes.

### Staging & Committing

- Always follow the [Conventional Commits](../conventional-commits/SKILL.md) skill.
- Stage only relevant changes: `git add <file>` (avoid `git add .` unless necessary).
- Review changes before committing: `git diff --staged`.

## 2. Common Operations

### Starting Work

```bash
git checkout main
git pull origin main
git checkout -b feat/my-new-feature
```

### Synchronizing

```bash
git fetch --all
git pull origin [branch-name]
git push origin [branch-name]
```

### Merging & Rebasing

- **Merge**: Use for combining long-lived branches.
- **Rebase**: Use to keep feature branches up-to-date with main and maintain a clean history.

  ```bash
  git checkout feat/my-feature
  git rebase main
  ```

## 3. Advanced Git Mastery

### Conflict Resolution

1. Identify files: `git status`.
2. Edit files to resolve `<<<<`, `====`, `>>>>` markers.
3. Stage resolved files: `git add <file>`.
4. Continue: `git commit` or `git rebase --continue`.

### Disaster Recovery

- **Undo last commit (keep changes)**: `git reset --soft HEAD~1`.
- **Undo last commit (discard changes)**: `git reset --hard HEAD~1`.
- **Find lost commits**: `git reflog`.
- **Revert a specific commit**: `git revert <commit-hash>`.

### Stashing

- Save work temporarily: `git stash push -m "work in progress"`.
- Retrieve work: `git stash pop`.

## 4. Quality Gates

- No merge commits on feature branches (prefer rebase).
- Each commit must pass linting and tests.
- Pull requests must be clear and focus on a single objective.