Git Collaboration Workflow — Modern Team Development
Modern Best Practices: GitHub Flow for continuous deployment, Trunk-Based for scale, conventional commits for automation, stacked diffs for large features
This skill provides modern Git collaboration patterns for high-performing engineering teams, covering branching strategies, pull request workflows, commit conventions, code review best practices, and release automation.
When to Use This Skill
Invoke this skill when the user asks to:
- Design branching strategies for teams (GitHub Flow, Trunk-Based, GitFlow)
- Create pull request or merge request workflows
- Implement commit conventions (Conventional Commits, semantic versioning)
- Set up code review processes and quality gates
- Resolve merge conflicts or rebase issues
- Configure Git automation (GitHub Actions, GitLab CI PR checks)
- Implement stacked diffs workflows
- Design release management strategies
- Set up automated quality gates in CI/CD
- Create validation checklists for PRs and releases
Quick Reference
| Task |
Tool/Command |
When to Use |
Reference |
| Create feature branch |
git checkout -b feat/name main |
Start new work |
Branching Strategies |
| Squash WIP commits |
git rebase -i HEAD~3 |
Clean up before PR |
Interactive Rebase |
| Conventional commit |
git commit -m "feat: add feature" |
All commits |
Commit Conventions |
| Force push safely |
git push --force-with-lease |
After rebase |
Common Mistakes |
| Resolve conflicts |
git mergetool |
Merge conflicts |
Conflict Resolution |
| Create stacked PRs |
gt create stack-name (Graphite) |
Large features |
Stacked Diffs |
| Auto-generate changelog |
npx standard-version |
Before release |
Release Management |
| Run quality gates |
GitHub Actions / GitLab CI |
Every PR |
Automated Quality Gates |
Decision Tree: Choosing Branching Strategy
Use this decision tree to select the optimal branching strategy for your team based on team size, release cadence, and CI/CD maturity.
Team characteristics → What's your situation?
├─ Small team (1-5 devs) + Continuous deployment + High CI/CD maturity?
│ └─ GitHub Flow (main + feature branches)
│
├─ Medium team (5-15 devs) + Continuous deployment + High CI/CD maturity?
│ └─ Trunk-Based Development (main + short-lived branches)
│
├─ Large team (15+ devs) + Continuous deployment + Very high CI/CD maturity?
│ └─ Trunk-Based + Feature Flags (progressive rollout)
│
├─ Scheduled releases + Medium CI/CD maturity?
│ └─ GitFlow (main + develop + release branches)
│
└─ Multiple versions + Low-Medium CI/CD maturity?
└─ GitFlow (long-lived release branches)
Navigation: Core Workflows
Branching Strategies
Branching Strategies Comparison - Comprehensive guide to choosing and implementing branching strategies
- GitHub Flow (recommended for modern teams): Simple, continuous deployment
- Trunk-Based Development (enterprise scale): Short-lived branches, daily merges
- GitFlow (structured releases): Scheduled releases, multiple versions
- Decision matrix: Team size, release cadence, CI/CD maturity
- Migration paths between strategies
Pull Request Best Practices
PR Best Practices Guide - Effective code reviews and fast PR cycles
- PR size guidelines: 200-400 lines optimal (46% faster merge)
- Review categories: BLOCKER, WARNING, NITPICK
- Review etiquette: Collaborative feedback, code examples
- PR description templates: What, Why, How, Testing
- Data-driven insights on review efficiency
Commit Conventions
Conventional Commits Standard - Commit message formats and semantic versioning integration
- Conventional commit format:
type(scope): description
- Commit types: feat, fix, BREAKING CHANGE, refactor, docs
- SemVer automation: Auto-bump versions from commits
- Changelog generation: Automated from commit history
- Tools: commitlint, semantic-release, standard-version
Navigation: Advanced Techniques
Stacked Diffs
Stacked Diffs Implementation - Platform-specific workflows and team adoption
- What are stacked diffs: Break large features into reviewable chunks
- When to use: Features > 500 lines, complex refactoring
- GitLab native support: MR chains
- GitHub with Graphite: CLI-based stacking
- Benefits: 60% faster review cycles, better quality
Interactive Rebase
Interactive Rebase & History Cleanup - Maintain clean commit history
- Auto-squash workflow:
fixup! and squash! commits
- Interactive rebase commands: pick, reword, edit, squash, fixup, drop
- Splitting commits: Break large commits into focused changes
- Reordering commits: Logical commit history
- Best practices: Never rebase public branches
Conflict Resolution
Conflict Resolution Techniques - Merge strategies and conflict handling
- Resolution strategies:
--ours, --theirs, manual merge
- Rebase vs merge: When to use each
- Merge tool setup: VS Code, Meld, custom tools
- Conflict markers: Understanding
<<<<<<<, =======, >>>>>>>
- Prevention strategies: Frequent rebasing, small PRs
Navigation: Automation & Quality
Automated Quality Gates
Automated Quality Gates - CI/CD pipelines and quality enforcement
- Essential gates: Tests, coverage, linting, security scans
- Advanced gates: Performance benchmarks, bundle size, a11y checks
- GitHub Actions workflows: Complete PR checks pipeline
- GitLab CI pipelines: MR quality gates
- Pre-commit hooks: Husky + lint-staged setup
- Quality metrics thresholds: Coverage 80%, complexity < 10
Validation Checklists
Validation Checklists - Pre-PR, pre-merge, pre-release checklists
- Before creating PR: Code quality, commit hygiene, testing
- Before merging PR: Review process, CI/CD checks, final verification
- Before releasing: Pre-release testing, version management, documentation
- Post-deployment: Immediate verification, monitoring, tasks
- Hotfix checklist: Critical bug fast-track process
Release Management
Release Management - Versioning and deployment workflows
- Semantic versioning: MAJOR.MINOR.PATCH
- Manual release workflow: GitFlow release branches
- Automated releases: semantic-release automation
- Hotfix workflow: Emergency patches
- Changelog generation: Keep a Changelog format
- Release checklists: Pre-release, release day, post-release
Navigation: Learning & Troubleshooting
Common Mistakes
Common Mistakes & Fixes - Learn from common pitfalls
- Large unfocused PRs → Split into stacked diffs
- Vague commit messages → Use conventional commits
- Rewriting public history → Never rebase main
- Ignoring review comments → Address all feedback
- Committing secrets → Use environment variables
- Force push dangers → Use
--force-with-lease
Decision Tables
When to Use Each Branching Strategy
| Requirement |
GitHub Flow |
Trunk-Based |
GitFlow |
| Continuous deployment |
[OK] Best |
[OK] Best |
[FAIL] Poor |
| Scheduled releases |
[WARNING] OK |
[WARNING] OK |
[OK] Best |
| Multiple versions |
[FAIL] Poor |
[FAIL] Poor |
[OK] Best |
| Small team (< 5) |
[OK] Best |
[WARNING] OK |
[FAIL] Overkill |
| Large team (> 15) |
[WARNING] OK |
[OK] Best |
[WARNING] OK |
| Fast iteration |
[OK] Best |
[OK] Best |
[FAIL] Poor |
PR Size vs Review Time
| LOC |
Review Time |
Bug Detection |
Recommendation |
| < 50 |
< 10 min |
High |
[OK] Ideal for hotfixes |
| 50-200 |
10-30 min |
High |
[OK] Ideal for features |
| 200-400 |
30-60 min |
Medium-High |
[OK] Acceptable |
| 400-1000 |
1-2 hours |
Medium |
[WARNING] Consider splitting |
| > 1000 |
> 2 hours |
Low |
[FAIL] Always split |
Do / Avoid
GOOD: Do
- Keep PRs under 400 lines (200-400 optimal)
- Use conventional commit messages
- Rebase before opening PR (clean history)
- Require at least one approval before merge
- Run CI checks on every PR
- Use stacked diffs for large features (>500 LOC)
- Squash WIP commits before merge
- Use
--force-with-lease (not --force)
BAD: Avoid
- Long-lived feature branches (>3 days)
- Merging without review
- Rebasing public/shared branches
- Force pushing to main/master
- Committing secrets (even "temporarily")
- Large monolithic PRs (>1000 lines)
- Vague commit messages ("fix", "update")
- Skipping CI to merge faster
Anti-Patterns
| Anti-Pattern |
Problem |
Fix |
| Long-lived branches |
Merge conflicts, stale code |
Trunk-based, short branches |
| Unreviewed merges |
Bugs reach production |
Branch protection rules |
| Rebasing main |
History corruption |
Never rebase public branches |
| 1000+ LOC PRs |
Poor review quality |
Stacked diffs, split PRs |
| "fix" commits |
Unclear history |
Conventional commits |
| No CI gates |
Broken main |
Required status checks |
| Secrets in history |
Security breach |
Pre-commit hooks, gitleaks |
Repository Baseline (Security + Reliability)
Set these repo defaults before scaling a team:
- Branch protection: require PRs to
main (no direct pushes), require status checks, require up-to-date branch on merge.
- Review gates: require approvals; enforce CODEOWNERS for sensitive paths (auth, payments, infra, prod configs).
- History policy: pick merge strategy (squash vs merge commits) and make it consistent; document exceptions.
- Signed changes: require signed commits and signed tags for releases (team-specific key management).
- Secret prevention: local pre-commit + server-side secret scanning/push protection; rotate on incident.
- Merge safety: use merge queue (or equivalent) for busy repos to keep
main green under high concurrency.
- Cost control: cache dependencies/builds; run heavy jobs conditionally; cap CI minutes for untrusted forks.
Template: templates/pull-requests/pr-template.md
Guide: templates/template-git-workflow-guide.md
Security-Sensitive Changes
For security-related git operations, see git-commit-message/templates/template-security-commits.md:
- Secrets detection with pre-commit hooks
- Handling accidental secret commits
- Security commit metadata (CVE, CVSS)
- Branch protection for security-sensitive code
Optional: AI/Automation
Note: AI tools assist but cannot replace human judgment for merge decisions.
- PR summarization — Generate description from commits
- Change risk labeling — Flag high-risk files (auth, payments)
- Review suggestions — Identify potential reviewers
Bounded Claims
- AI summaries need human verification
- Risk labels are suggestions, not guarantees
- Merge decisions always require human approval
Related Skills
Usage Notes
For Claude Code:
- Recommend GitHub Flow for most modern teams (simple, effective)
- Suggest stacked diffs for features > 500 lines
- Always validate commit messages against conventional commit format
- Check PR size - warn if > 400 lines, block if > 1000 lines
- Reference templates/ for copy-paste ready configurations
- Use resources/ for deep-dive implementation guidance
Progressive Disclosure:
- Start with Quick Reference for fast lookups
- Use Decision Tree for choosing strategies
- Navigate to specific resources for detailed implementation
- Reference templates for production-ready configurations
- Check validation checklists before PR/merge/release
Quick Command Reference
Common Operations:
# Rebase feature branch
git fetch origin && git rebase origin/main
# Interactive rebase last 3 commits
git rebase -i HEAD~3
# Squash all commits in branch
git rebase -i $(git merge-base HEAD main)
# Force push safely
git push --force-with-lease origin feature-branch
# Undo last commit (keep changes)
git reset --soft HEAD~1
# Cherry-pick specific commit
git cherry-pick abc123
# Stash changes
git stash save "WIP: implementing feature X"
git stash pop
Conflict Resolution:
# Pull latest with rebase
git pull --rebase origin main
# Use visual merge tool
git mergetool
# Accept their changes
git checkout --theirs <file>
# Accept your changes
git checkout --ours <file>
1---2name: git-workflow3description: Modern Git collaboration patterns for team development - branching strategies, PR workflows, commit conventions, and code review best practices4---56# Git Collaboration Workflow — Modern Team Development78**Modern Best Practices**: GitHub Flow for continuous deployment, Trunk-Based for scale, conventional commits for automation, stacked diffs for large features910This skill provides modern Git collaboration patterns for high-performing engineering teams, covering branching strategies, pull request workflows, commit conventions, code review best practices, and release automation.1112---1314## When to Use This Skill1516Invoke this skill when the user asks to:1718- Design branching strategies for teams (GitHub Flow, Trunk-Based, GitFlow)19- Create pull request or merge request workflows20- Implement commit conventions (Conventional Commits, semantic versioning)21- Set up code review processes and quality gates22- Resolve merge conflicts or rebase issues23- Configure Git automation (GitHub Actions, GitLab CI PR checks)24- Implement stacked diffs workflows25- Design release management strategies26- Set up automated quality gates in CI/CD27- Create validation checklists for PRs and releases2829---3031## Quick Reference3233| Task | Tool/Command | When to Use | Reference |34|------|-------------|-------------|-----------|35| Create feature branch | `git checkout -b feat/name main` | Start new work | [Branching Strategies](resources/branching-strategies.md) |36| Squash WIP commits | `git rebase -i HEAD~3` | Clean up before PR | [Interactive Rebase](resources/interactive-rebase-guide.md) |37| Conventional commit | `git commit -m "feat: add feature"` | All commits | [Commit Conventions](resources/commit-conventions.md) |38| Force push safely | `git push --force-with-lease` | After rebase | [Common Mistakes](resources/common-mistakes.md) |39| Resolve conflicts | `git mergetool` | Merge conflicts | [Conflict Resolution](resources/conflict-resolution.md) |40| Create stacked PRs | `gt create stack-name` (Graphite) | Large features | [Stacked Diffs](resources/stacked-diffs-guide.md) |41| Auto-generate changelog | `npx standard-version` | Before release | [Release Management](resources/release-management.md) |42| Run quality gates | GitHub Actions / GitLab CI | Every PR | [Automated Quality Gates](resources/automated-quality-gates.md) |4344---4546## Decision Tree: Choosing Branching Strategy4748```text49Use this decision tree to select the optimal branching strategy for your team based on team size, release cadence, and CI/CD maturity.5051Team characteristics → What's your situation?52 ├─ Small team (1-5 devs) + Continuous deployment + High CI/CD maturity?53 │ └─ GitHub Flow (main + feature branches)54 │55 ├─ Medium team (5-15 devs) + Continuous deployment + High CI/CD maturity?56 │ └─ Trunk-Based Development (main + short-lived branches)57 │58 ├─ Large team (15+ devs) + Continuous deployment + Very high CI/CD maturity?59 │ └─ Trunk-Based + Feature Flags (progressive rollout)60 │61 ├─ Scheduled releases + Medium CI/CD maturity?62 │ └─ GitFlow (main + develop + release branches)63 │64 └─ Multiple versions + Low-Medium CI/CD maturity?65 └─ GitFlow (long-lived release branches)66```6768---6970## Navigation: Core Workflows7172### Branching Strategies7374**[Branching Strategies Comparison](resources/branching-strategies.md)** - Comprehensive guide to choosing and implementing branching strategies7576- GitHub Flow (recommended for modern teams): Simple, continuous deployment77- Trunk-Based Development (enterprise scale): Short-lived branches, daily merges78- GitFlow (structured releases): Scheduled releases, multiple versions79- Decision matrix: Team size, release cadence, CI/CD maturity80- Migration paths between strategies8182### Pull Request Best Practices8384**[PR Best Practices Guide](resources/pr-best-practices.md)** - Effective code reviews and fast PR cycles8586- PR size guidelines: 200-400 lines optimal (46% faster merge)87- Review categories: BLOCKER, WARNING, NITPICK88- Review etiquette: Collaborative feedback, code examples89- PR description templates: What, Why, How, Testing90- Data-driven insights on review efficiency9192### Commit Conventions9394**[Conventional Commits Standard](resources/commit-conventions.md)** - Commit message formats and semantic versioning integration9596- Conventional commit format: `type(scope): description`97- Commit types: feat, fix, BREAKING CHANGE, refactor, docs98- SemVer automation: Auto-bump versions from commits99- Changelog generation: Automated from commit history100- Tools: commitlint, semantic-release, standard-version101102---103104## Navigation: Advanced Techniques105106### Stacked Diffs107108**[Stacked Diffs Implementation](resources/stacked-diffs-guide.md)** - Platform-specific workflows and team adoption109110- What are stacked diffs: Break large features into reviewable chunks111- When to use: Features > 500 lines, complex refactoring112- GitLab native support: MR chains113- GitHub with Graphite: CLI-based stacking114- Benefits: 60% faster review cycles, better quality115116### Interactive Rebase117118**[Interactive Rebase & History Cleanup](resources/interactive-rebase-guide.md)** - Maintain clean commit history119120- Auto-squash workflow: `fixup!` and `squash!` commits121- Interactive rebase commands: pick, reword, edit, squash, fixup, drop122- Splitting commits: Break large commits into focused changes123- Reordering commits: Logical commit history124- Best practices: Never rebase public branches125126### Conflict Resolution127128**[Conflict Resolution Techniques](resources/conflict-resolution.md)** - Merge strategies and conflict handling129130- Resolution strategies: `--ours`, `--theirs`, manual merge131- Rebase vs merge: When to use each132- Merge tool setup: VS Code, Meld, custom tools133- Conflict markers: Understanding `<<<<<<<`, `=======`, `>>>>>>>`134- Prevention strategies: Frequent rebasing, small PRs135136---137138## Navigation: Automation & Quality139140### Automated Quality Gates141142**[Automated Quality Gates](resources/automated-quality-gates.md)** - CI/CD pipelines and quality enforcement143144- Essential gates: Tests, coverage, linting, security scans145- Advanced gates: Performance benchmarks, bundle size, a11y checks146- GitHub Actions workflows: Complete PR checks pipeline147- GitLab CI pipelines: MR quality gates148- Pre-commit hooks: Husky + lint-staged setup149- Quality metrics thresholds: Coverage 80%, complexity < 10150151### Validation Checklists152153**[Validation Checklists](resources/validation-checklists.md)** - Pre-PR, pre-merge, pre-release checklists154155- Before creating PR: Code quality, commit hygiene, testing156- Before merging PR: Review process, CI/CD checks, final verification157- Before releasing: Pre-release testing, version management, documentation158- Post-deployment: Immediate verification, monitoring, tasks159- Hotfix checklist: Critical bug fast-track process160161### Release Management162163**[Release Management](resources/release-management.md)** - Versioning and deployment workflows164165- Semantic versioning: MAJOR.MINOR.PATCH166- Manual release workflow: GitFlow release branches167- Automated releases: semantic-release automation168- Hotfix workflow: Emergency patches169- Changelog generation: Keep a Changelog format170- Release checklists: Pre-release, release day, post-release171172---173174## Navigation: Learning & Troubleshooting175176### Common Mistakes177178**[Common Mistakes & Fixes](resources/common-mistakes.md)** - Learn from common pitfalls179180- Large unfocused PRs → Split into stacked diffs181- Vague commit messages → Use conventional commits182- Rewriting public history → Never rebase main183- Ignoring review comments → Address all feedback184- Committing secrets → Use environment variables185- Force push dangers → Use `--force-with-lease`186187---188189## Decision Tables190191### When to Use Each Branching Strategy192193| Requirement | GitHub Flow | Trunk-Based | GitFlow |194|-------------|-------------|-------------|---------|195| Continuous deployment | [OK] Best | [OK] Best | [FAIL] Poor |196| Scheduled releases | [WARNING] OK | [WARNING] OK | [OK] Best |197| Multiple versions | [FAIL] Poor | [FAIL] Poor | [OK] Best |198| Small team (< 5) | [OK] Best | [WARNING] OK | [FAIL] Overkill |199| Large team (> 15) | [WARNING] OK | [OK] Best | [WARNING] OK |200| Fast iteration | [OK] Best | [OK] Best | [FAIL] Poor |201202### PR Size vs Review Time203204| LOC | Review Time | Bug Detection | Recommendation |205|-----|-------------|---------------|----------------|206| < 50 | < 10 min | High | [OK] Ideal for hotfixes |207| 50-200 | 10-30 min | High | [OK] Ideal for features |208| 200-400 | 30-60 min | Medium-High | [OK] Acceptable |209| 400-1000 | 1-2 hours | Medium | [WARNING] Consider splitting |210| > 1000 | > 2 hours | Low | [FAIL] Always split |211212---213214## Do / Avoid215216### GOOD: Do217218- Keep PRs under 400 lines (200-400 optimal)219- Use conventional commit messages220- Rebase before opening PR (clean history)221- Require at least one approval before merge222- Run CI checks on every PR223- Use stacked diffs for large features (>500 LOC)224- Squash WIP commits before merge225- Use `--force-with-lease` (not `--force`)226227### BAD: Avoid228229- Long-lived feature branches (>3 days)230- Merging without review231- Rebasing public/shared branches232- Force pushing to main/master233- Committing secrets (even "temporarily")234- Large monolithic PRs (>1000 lines)235- Vague commit messages ("fix", "update")236- Skipping CI to merge faster237238---239240## Anti-Patterns241242| Anti-Pattern | Problem | Fix |243|--------------|---------|-----|244| **Long-lived branches** | Merge conflicts, stale code | Trunk-based, short branches |245| **Unreviewed merges** | Bugs reach production | Branch protection rules |246| **Rebasing main** | History corruption | Never rebase public branches |247| **1000+ LOC PRs** | Poor review quality | Stacked diffs, split PRs |248| **"fix" commits** | Unclear history | Conventional commits |249| **No CI gates** | Broken main | Required status checks |250| **Secrets in history** | Security breach | Pre-commit hooks, gitleaks |251252---253254## Repository Baseline (Security + Reliability)255256Set these repo defaults before scaling a team:257258- **Branch protection**: require PRs to `main` (no direct pushes), require status checks, require up-to-date branch on merge.259- **Review gates**: require approvals; enforce CODEOWNERS for sensitive paths (auth, payments, infra, prod configs).260- **History policy**: pick merge strategy (squash vs merge commits) and make it consistent; document exceptions.261- **Signed changes**: require signed commits and signed tags for releases (team-specific key management).262- **Secret prevention**: local pre-commit + server-side secret scanning/push protection; rotate on incident.263- **Merge safety**: use merge queue (or equivalent) for busy repos to keep `main` green under high concurrency.264- **Cost control**: cache dependencies/builds; run heavy jobs conditionally; cap CI minutes for untrusted forks.265266Template: [templates/pull-requests/pr-template.md](templates/pull-requests/pr-template.md)267Guide: [templates/template-git-workflow-guide.md](templates/template-git-workflow-guide.md)268269---270271## Security-Sensitive Changes272273For security-related git operations, see [git-commit-message/templates/template-security-commits.md](../git-commit-message/templates/template-security-commits.md):274275- Secrets detection with pre-commit hooks276- Handling accidental secret commits277- Security commit metadata (CVE, CVSS)278- Branch protection for security-sensitive code279280---281282## Optional: AI/Automation283284> **Note**: AI tools assist but cannot replace human judgment for merge decisions.285286- **PR summarization** — Generate description from commits287- **Change risk labeling** — Flag high-risk files (auth, payments)288- **Review suggestions** — Identify potential reviewers289290### Bounded Claims291292- AI summaries need human verification293- Risk labels are suggestions, not guarantees294- Merge decisions always require human approval295296---297298## Related Skills299300- [Software Code Review](../software-code-review/SKILL.md) - Code review standards and techniques301- [Quality Debugging](../qa-debugging/SKILL.md) - Git bisect, debugging workflows302- [DevOps Platform Engineering](../ops-devops-platform/SKILL.md) - CI/CD pipelines, automation303- [Software Testing & Automation](../qa-testing-strategy/SKILL.md) - Test-driven development, coverage gates304- [Documentation Standards](../docs-codebase/SKILL.md) - Changelog formats, documentation workflows305- [Git Commit Message](../git-commit-message/SKILL.md) - Commit message conventions, security commits306307---308309## Usage Notes310311**For Claude Code**:312313- Recommend GitHub Flow for most modern teams (simple, effective)314- Suggest stacked diffs for features > 500 lines315- Always validate commit messages against conventional commit format316- Check PR size - warn if > 400 lines, block if > 1000 lines317- Reference templates/ for copy-paste ready configurations318- Use resources/ for deep-dive implementation guidance319320**Progressive Disclosure**:3213221. Start with Quick Reference for fast lookups3232. Use Decision Tree for choosing strategies3243. Navigate to specific resources for detailed implementation3254. Reference templates for production-ready configurations3265. Check validation checklists before PR/merge/release327328---329330## Quick Command Reference331332**Common Operations**:333334```bash335# Rebase feature branch336git fetch origin && git rebase origin/main337338# Interactive rebase last 3 commits339git rebase -i HEAD~3340341# Squash all commits in branch342git rebase -i $(git merge-base HEAD main)343344# Force push safely345git push --force-with-lease origin feature-branch346347# Undo last commit (keep changes)348git reset --soft HEAD~1349350# Cherry-pick specific commit351git cherry-pick abc123352353# Stash changes354git stash save "WIP: implementing feature X"355git stash pop356```357358**Conflict Resolution**:359360```bash361# Pull latest with rebase362git pull --rebase origin main363364# Use visual merge tool365git mergetool366367# Accept their changes368git checkout --theirs <file>369370# Accept your changes371git checkout --ours <file>372```