Skip to main content

Git For Absolute Beginners

· 4 min read
Sivabharathy

Git for Absolute Beginners: A Comprehensive Guide with Clear Examples

Git is a powerful version control system that allows multiple people to work on a project simultaneously, keeps track of changes, and facilitates collaboration. If you're new to Git, don't worry! This guide will walk you through the basics with clear, step-by-step examples.

What is Git?

Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It allows you to:

  • Track changes in your code
  • Revert to previous versions
  • Collaborate with others

Setting Up Git

Step 1: Install Git

First, you need to install Git. Here’s how you can do it on various platforms:

For Ubuntu:

sudo apt update
sudo apt install git -y

For macOS:

brew install git

For Windows: Download the installer from git-scm.com and follow the installation instructions.

Step 2: Configure Git

After installing Git, set up your name and email address. This information will be associated with your commits.

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Basic Git Workflow

Step 1: Initialize a Repository

A Git repository is where Git stores all the information about the project, including its history.

  1. Create a new directory for your project:

    mkdir my_project
    cd my_project
  2. Initialize a Git repository in the directory:

    git init

Step 2: Add Files to the Repository

Create a file in your project directory. For example, create a README.md file.

echo "# My Project" > README.md

Step 3: Stage the Files

Before committing changes, you need to stage them. Staging allows you to select which changes you want to include in your next commit.

git add README.md

You can stage all files at once using:

git add .

Step 4: Commit the Changes

A commit records the changes in the repository. Think of it as taking a snapshot of your project at a specific point in time.

git commit -m "Initial commit with README"

Step 5: Check the Status

To see the status of your repository, use:

git status

This command shows which files are staged, unstaged, and untracked.

Step 6: View the Commit History

To view the history of your commits, use:

git log

Example Project Workflow

Let's go through an example project workflow.

  1. Create a new file:

    echo "print('Hello, world!')" > hello.py
  2. Stage the new file:

    git add hello.py
  3. Commit the new file:

    git commit -m "Add hello.py with a print statement"
  4. Modify the file:

    echo "print('Hello again!')" >> hello.py
  5. Stage and commit the changes:

    git add hello.py
    git commit -m "Update hello.py with another print statement"

Branching and Merging

Branches allow you to develop features in isolation from each other. The default branch in Git is main (or master in older versions).

Creating a Branch

git branch new-feature

Switching to the Branch

git checkout new-feature

Now, any changes you make will be on the new-feature branch.

Merging a Branch

After making changes and committing them to the new-feature branch, you can merge it back into the main branch.

  1. Switch to the main branch:

    git checkout main
  2. Merge the changes:

    git merge new-feature
  3. Delete the feature branch (optional):

    git branch -d new-feature

Pushing to a Remote Repository

A remote repository allows you to collaborate with others. GitHub is a popular choice for hosting Git repositories.

  1. Add a remote repository:

    git remote add origin https://github.com/yourusername/your-repo.git
  2. Push your changes:

    git push -u origin main

Cloning a Repository

To clone a repository (copy it to your local machine):

git clone https://github.com/username/repo.git

Conclusion

Git is an essential tool for developers, providing powerful features for version control and collaboration. By following this guide, you should now have a basic understanding of Git and how to use it. As you become more comfortable with Git, you can explore more advanced features such as rebasing, stashing, and hooks. Happy coding!