Skip to main content

What is Git?

Git is a distributed version control system that helps you track changes in your code, collaborate with other developers, and maintain different versions of your project. It was created by Linus Torvalds in 2005 and has become the standard for version control in software development.
Git is different from GitHub. Git is the version control system, while GitHub is a cloud-based hosting service that lets you manage Git repositories. Other similar services include GitLab and Bitbucket.

Why Use Git for Frontend Development?

Track Changes

Keep a complete history of your code changes, making it easy to understand how your project evolved over time.

Collaboration

Work with other developers simultaneously without overwriting each other’s changes.

Experimentation

Create branches to experiment with new features or designs without affecting the main codebase.

Backup

Store your code in remote repositories, ensuring you never lose your work.

Git Basics

Setting Up Git

Before using Git, you need to set it up with your identity:

Core Git Concepts

1

Repository (Repo)

A repository is a collection of files and folders that you want to track with Git, along with the history of changes made to those files.
2

Staging Area

The staging area is where you prepare changes before committing them to the repository.
3

Commits

A commit is a snapshot of your repository at a specific point in time.
4

Branches

Branches allow you to develop features, fix bugs, or experiment with new ideas in isolation.

Common Git Workflows

Basic Workflow

The simplest Git workflow involves making changes, staging them, and committing them:

Working with Remote Repositories

Remote repositories allow you to back up your code and collaborate with others:

Feature Branch Workflow

A common workflow for developing new features:
1

Create a feature branch

2

Make changes and commit them

3

Push the feature branch to the remote repository

4

Create a pull request

Go to GitHub (or similar platform) and create a pull request to merge your feature branch into the main branch.
5

After the pull request is approved and merged

Essential Git Commands

Basic Commands

Working with Branches

Handling Conflicts

When Git can’t automatically merge changes, you’ll need to resolve conflicts manually:

Advanced Git Features

Stashing Changes

Stashing allows you to temporarily save changes without committing them:

Git Tags

Tags are used to mark specific points in history, typically for releases:

Interactive Rebase

Interactive rebase allows you to modify your commit history:
This opens an editor where you can:
  • Reorder commits
  • Edit commit messages
  • Squash multiple commits into one
  • Split commits
  • Delete commits

Git Best Practices for Frontend Projects

Commit Messages

Write clear, descriptive commit messages that explain what changes were made and why:
Consider using conventional commits format: type(scope): message Common types include:
  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code changes that neither fix bugs nor add features
  • test: Adding or updating tests
  • chore: Changes to the build process or auxiliary tools

.gitignore

Create a proper .gitignore file to exclude unnecessary files from your repository:

Branch Strategy

Adopt a consistent branching strategy for your team:
  • Main/Master: Production-ready code
  • Develop: Integration branch for features
  • Feature branches: For new features (feature/feature-name)
  • Hotfix branches: For urgent fixes (hotfix/issue-description)
  • Release branches: For preparing releases (release/v1.2.0)

Git Tools and Integrations

Git GUI Clients

If you prefer a visual interface over the command line:
  • GitHub Desktop: Simple and integrates well with GitHub
  • GitKraken: Powerful cross-platform Git client
  • Sourcetree: Feature-rich client for Windows and Mac
  • VS Code: Built-in Git integration

Git Hooks

Git hooks are scripts that run automatically when certain Git events occur:
  • pre-commit: Run linters or tests before committing
  • pre-push: Verify code quality before pushing
  • post-merge: Update dependencies after pulling changes
Tools like Husky make it easy to set up Git hooks in your project:

Common Git Issues and Solutions

Accidentally Committed to the Wrong Branch

Undo the Last Commit

Fix a Typo in the Last Commit Message

Next Steps

Now that you understand Git basics, you can: