What is squash and merge?
Combines all your individual commits into one clean commit when merging a PR - keeps the main/dev log clean instead of showing hundreds of messy trial-and-error commits
Why should you squash and merge?
When building a feature you might make hundreds of small commits (fail fast approach) - the team doesn’t need to see all that - squash it into one commit so the log is readable
What is forking a repo?
Creating a personal copy of someone else’s repo in your own GitHub space - used when you don’t have write access to the original repo
When do you fork vs branch?
Fork when you’re NOT on the team that owns the repo (no write access) - Branch when you ARE on the team and have contributor access to the repo
How do you contribute back after forking?
Make all your changes in your forked copy - then open a PR from your fork back to the original repo - the owning team reviews and approves
Why do teams restrict branching to their own members?
Prevents outsiders from cluttering the repo with random branches and tags - keeps the repo clean - other teams can view but not modify
What is linting?
Automated code quality checks that scan for formatting issues - best practice violations - and sensitive info like passwords or API keys accidentally left in code
What is a CAB (Change Approval Board)?
A council of senior technical people who review production changes - you must answer: what is the change - time window - exact steps - rollback procedure if it fails
What is a hotfix bypass process?
Emergency path that skips normal CAB review - requires special approval - GitHub admins can temporarily disable branch protection to push critical fixes through
What are GitHub Secrets and Variables?
Built-in GitHub feature to store sensitive values (API keys - credentials - tokens) per repo - your code references the variable name so secrets never appear in code files
Why use GitHub Secrets instead of .env files in the repo?
Secrets stored in GitHub settings are encrypted and never visible in code - .env files risk being accidentally committed - GitHub Secrets are the enterprise-standard approach
What is Artifactory?
A storage system for built software packages and their dependencies - like a GitHub but for compiled/built artifacts instead of source code - stores the deployable output
What is a spike in Agile?
An investigation ticket used when you need to research something before you can build it - time-boxed exploration to figure out approach before committing to a full feature
What is story pointing?
Team estimates the effort required for each work item before a sprint - helps predict how much work the team can commit to in a two-week cycle
What is sprint grooming (refinement)?
A session where the team reviews upcoming work items - breaks them down - estimates effort - and prepares them to be worked on in the next sprint
What is a standard sprint cycle?
Two weeks of predefined work - team commits upfront to what they’ll accomplish - daily standups track progress - sprint ends with review and planning for next cycle
What happens in a daily standup?
Quick 15-minute team check-in - each person shares: what I did yesterday - what I’m doing today - any blockers - don’t go deep technical - save that for separate meetings
What is a Jira board?
A visual project tracking tool with swim lanes (To Do - In Progress - In Review - Done) - each work item is a ticket that moves across the board as you work on it
What is the VS Code Git plugin?
Built-in source control tab in VS Code that lets you stage - commit - push - pull - see changes - resolve conflicts - and manage branches without using CLI commands
Why use VS Code Git plugin over CLI?
Visual diff comparison - conflict highlighting with accept/reject buttons - branch management - commit history - most devs in corporate environments use the plugin over manual commands daily
What does the Source Control tab show in VS Code?
Shows which files are modified - staged - or untracked - lets you view diffs - commit directly - and sync with the remote repo - your primary Git interface day to day
Why create the repo in GitHub UI first then clone?
Avoids upstream configuration issues - when you clone from GitHub the remote (origin) is automatically set up correctly - creating locally first can cause complications when pushing
Where should you keep cloned repos locally?
Create a dedicated Git folder on your drive (like C:\git) for all repos - makes navigation easy from terminal and keeps everything organized in one known location
What does a GitHub organization look like?
A company-wide GitHub account containing many repos - different teams own different repos - repos are tagged (application - internal tool - etc.) - could be thousands of repos