git-version-control

Git workflows, branching strategies, collaboration, and code management

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-version-control" with this command: npx skills add pluginagentmarketplace/custom-plugin-data-engineer/pluginagentmarketplace-custom-plugin-data-engineer-git-version-control

Git & Version Control

Production Git workflows, branching strategies, and collaborative development practices.

Quick Start

# Initialize and configure
git init
git config user.name "Developer Name"
git config user.email "dev@company.com"

# Daily workflow
git checkout -b feature/add-data-pipeline
git add .
git commit -m "feat: add ETL pipeline for customer data"
git push -u origin feature/add-data-pipeline

# Create pull request (GitHub CLI)
gh pr create --title "Add ETL pipeline" --body "Implements customer data ETL"

Core Concepts

1. Branching Strategies

# GitFlow
main           ──●──────────────────●──────────  # Production
                 │                  │
develop        ──●──●──●──────●──●──●──────────  # Integration
                    │   \    /
feature/x          ●────●──●                     # Features
                          │
release/1.0            ───●────                  # Release prep

# Trunk-Based Development (recommended for CI/CD)
main           ──●──●──●──●──●──●──●──●────────  # Always deployable
                 │  │     │     │
feature/*       ●  ●     ●     ●                 # Short-lived (1-2 days)

# Commands
git checkout -b feature/new-feature main
git push -u origin feature/new-feature
# After PR approval
git checkout main && git pull
git merge --squash feature/new-feature
git push origin main
git branch -d feature/new-feature

2. Commit Best Practices

# Conventional Commits format
# type(scope): description

git commit -m "feat(etl): add incremental load for orders table"
git commit -m "fix(api): handle null values in response"
git commit -m "docs(readme): update installation instructions"
git commit -m "refactor(pipeline): extract validation logic"
git commit -m "test(unit): add tests for data transformer"

# Types: feat, fix, docs, style, refactor, test, chore, perf

# Interactive rebase for clean history
git rebase -i HEAD~3
# pick -> squash commits, reword messages

# Amend last commit (before push)
git commit --amend -m "Updated message"

3. Resolving Conflicts

# Fetch and rebase (preferred over merge)
git fetch origin
git rebase origin/main

# If conflicts occur
# 1. Edit conflicted files
# 2. Mark as resolved
git add <resolved-files>
git rebase --continue

# Abort if needed
git rebase --abort

# Cherry-pick specific commits
git cherry-pick abc123

# Undo last commit (keep changes)
git reset --soft HEAD~1

# Undo last commit (discard changes)
git reset --hard HEAD~1

4. Advanced Operations

# Stash changes
git stash save "WIP: refactoring"
git stash list
git stash pop  # Apply and remove
git stash apply stash@{0}  # Apply but keep

# Bisect to find bug
git bisect start
git bisect bad HEAD
git bisect good v1.0.0
# Git checks out commits, you test
git bisect good  # or bad
git bisect reset

# Find commits by content
git log -S "function_name" --oneline
git log --grep="fix" --oneline

# Blame to find author
git blame -L 10,20 src/pipeline.py

# Clean untracked files
git clean -fd  # Remove untracked files and directories

Git Hooks

#!/bin/bash
# .git/hooks/pre-commit

# Run linting
echo "Running linter..."
ruff check . || exit 1

# Run type checking
echo "Running type check..."
mypy src/ || exit 1

# Run tests
echo "Running tests..."
pytest tests/ -q || exit 1

echo "All checks passed!"

Tools & Technologies

ToolPurposeVersion (2025)
GitVersion control2.43+
GitHub CLIGitHub operations2.43+
pre-commitGit hooks framework3.6+
Conventional CommitsCommit standard-
GitLensVS Code extensionLatest

Troubleshooting Guide

IssueSymptomsRoot CauseFix
Merge ConflictCan't merge/rebaseDivergent changesResolve manually, git add, continue
Detached HEADNot on any branchChecked out commitgit checkout main
Lost CommitsCommits missingReset/rebasegit reflog, git cherry-pick
Large RepoSlow operationsLarge filesUse Git LFS, clean history

Best Practices

# ✅ DO: Write meaningful commit messages
git commit -m "fix(etl): handle empty dataframes in transform step

Previously the pipeline would crash when receiving empty data.
Now it logs a warning and continues with the next batch."

# ✅ DO: Keep commits atomic and focused
# ✅ DO: Rebase feature branches before merging
# ✅ DO: Use .gitignore properly

# ❌ DON'T: Commit secrets or credentials
# ❌ DON'T: Force push to shared branches
# ❌ DON'T: Commit large binary files

Resources


Skill Certification Checklist:

  • Can use branching and merging effectively
  • Can write conventional commit messages
  • Can resolve merge conflicts
  • Can use interactive rebase
  • Can set up pre-commit hooks

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

machine learning

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-programming

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

api-development

No summary provided by upstream source.

Repository SourceNeeds Review