Git Notes
This project guides you through building a web application as a team using professional Git and GitHub workflows. You will experience the complete software...
This project guides you through building a web application as a team using professional Git and GitHub workflows. You will experience the complete software development lifecycle — from repository setup through feature development, code review, conflict resolution, and deployment. By the end, you will have hands-on experience with the same collaboration patterns used at companies like Google, Meta, and Amazon.
Project Overview
You will build a simple task management application (similar to a basic Trello board) working in a team of 3-4 developers. Each person is responsible for a different feature, but everyone works in the same repository simultaneously. The goal is not just building the app — it is practicing the collaboration workflow.
Repository Setup
One team member creates the repository and sets up the foundation:
Configuring Branch Protection
Before the team starts, configure protection rules:
- Go to Settings → Branches → Add rule for
main - Enable: Require pull request reviews (at least 1)
- Enable: Require status checks to pass
- Enable: Require branches to be up-to-date
Team Roles and Feature Branches
Assign features to team members:
Developer A — Task Board UI:
git checkout -b feature/task-board-ui
# Build the HTML/CSS for the Kanban board interfaceDeveloper B — Task API:
git checkout -b feature/task-api
# Build REST endpoints: GET/POST/PUT/DELETE tasksDeveloper C — User Authentication:
git checkout -b feature/user-auth
# Build login/register functionalityDeveloper D — Drag and Drop:
git checkout -b feature/drag-drop
# Implement drag-and-drop task movement between columnsThe Development Workflow
Each developer follows this cycle:
# 1. Start fresh from main
git checkout main
git pull origin main
git checkout -b feature/my-feature
# 2. Work in small commits
git add .
git commit -m "Add task card component with title and description"
git add .
git commit -m "Add task creation form with validation"
# 3. Push and open PR
git push -u origin feature/my-feature
gh pr create --title "Add task board UI" --body "Implements the Kanban board layout with three columns"
# 4. Address review feedback
# Make changes based on reviewer comments
git add .
git commit -m "Address review: improve mobile responsiveness"
git push
# 5. Keep branch updated
git fetch origin
git rebase origin/main
git push --force-with-leaseCode Review Practice
When reviewing a teammate's PR:
- Pull their branch locally and test:
git fetch origin
git checkout origin/feature/task-api
npm test
npm start # Manual testing- Leave meaningful review comments on GitHub:
- Logic issues, not just style nitpicks
- Suggest improvements with code examples
- Approve when satisfied or request changes with clear reasoning
Handling Merge Conflicts
When Developer A and Developer C both modify public/index.html:
# Developer C tries to merge main (which now has Developer A's changes)
git checkout feature/user-auth
git merge main
# CONFLICT in public/index.html
# Resolve by combining both developers' additions
# Test that both features work together
git add public/index.html
git commit -m "Merge main, integrate auth UI with task board"Adding CI/CD with GitHub Actions
Create .github/workflows/ci.yml:
Project Milestones
Create GitHub milestones to track progress:
- Sprint 1: Basic UI and API (week 1)
- Sprint 2: Authentication and drag-drop (week 2)
- Sprint 3: Integration, testing, deployment (week 3)
Deployment
After all features are merged and tested:
# Tag the release
git tag v1.0.0
git push origin v1.0.0
# Deploy (e.g., to Render or Railway)
# The CI/CD pipeline handles deployment automatically on tag pushLearning Outcomes
By completing this project, you will have practiced:
- Creating and managing feature branches
- Writing descriptive pull requests
- Conducting code reviews
- Resolving merge conflicts
- Using GitHub Issues and milestones
- Setting up CI/CD pipelines
- Collaborating asynchronously with team members
Key Takeaways
This project simulates a real professional development environment. The technical complexity is intentionally moderate — the focus is on mastering the collaboration workflow. These patterns scale directly to industry work where you will manage far more complex features using exactly these same Git and GitHub practices. The skills you build here — branching, reviewing, communicating through PRs — are what make you an effective team member from day one at any company.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Collaborative Web App Project.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Git & GitHub topic.
Search Terms
git-github, git & github, git, github, projects, collaborative, web, app
Related Git & GitHub Topics