What is Git?

Git is a Distributed Version Control System (DVCS) used to track changes in source code during software development. It allows multiple developers to work on the same project simultaneously without overwriting each other's work.

A simple way to understand Git is:

"Git is like a timeline of our project. It tracks every code change, who made it, and when. If anything breaks, we can easily go back to any previous version."

Advertisement

Interview Answer

"Git is a distributed version control system used to track changes in source code. It allows multiple developers to collaborate on the same project by maintaining complete version history, supporting branching and merging, and enabling rollback to previous versions whenever required."


Key Features of Git

Feature Description
Distributed Every developer has a complete copy of the repository and its history locally.
Version Control Tracks every version of every file and allows easy rollback.
Branching & Merging Enables isolated development and safe merging of changes.
Collaboration Multiple developers can work simultaneously without overwriting each other's work.
Rollback Easily restore previous versions if bugs or issues are introduced.

Where is Git Used in Automation Testing?

Git is commonly used for:

  • Storing Selenium automation scripts
  • Managing REST Assured API automation projects
  • Tracking changes to test cases
  • Sharing automation code with team members
  • Integrating with Jenkins for CI/CD
  • Connecting with GitHub, GitLab, or Bitbucket

Real-Time Example

In my project, we used Git to manage all Selenium and REST Assured automation scripts. Whenever we developed a new test case or fixed an automation bug, we committed the changes to Git. Every new feature was developed in a separate feature branch. After code review and successful testing, the changes were merged into the main branch through a Pull Request, ensuring high code quality and avoiding conflicts.


Git vs GitHub

Although often used together, Git and GitHub are different.


Interview Answer

"Git is the version control tool that manages code locally, whereas GitHub is a cloud platform that hosts Git repositories and enables collaboration through Pull Requests, code reviews, and CI/CD integration."


Git vs GitHub Comparison

Git GitHub
Distributed Version Control System Cloud-based Git hosting platform
Runs locally on your computer Runs online
Tracks source code changes Hosts Git repositories
Supports commits, branches, merges Supports Pull Requests, code reviews, issues
Works without internet Requires internet for collaboration
Used for local version control Used for sharing and collaboration

Real-Time Example

In my automation project, I maintained all test scripts locally using Git. Once my work was complete, I pushed the changes to GitHub, where my automation lead reviewed the code through a Pull Request before merging it into the main branch. Jenkins then automatically executed the automation suite as part of the CI/CD pipeline.


Benefits of Using Git

Git provides several advantages for software development and test automation.


Version Control

Tracks every change made to the project.

Benefits:

  • View previous versions
  • Compare changes
  • Restore older versions

Collaboration

Allows multiple developers to work on the same project simultaneously without overwriting each other's changes.


Branching and Merging

Developers can:

  • Create feature branches
  • Develop independently
  • Merge changes safely

Offline Access

Since Git is distributed:

  • Most operations work offline.
  • Synchronization happens later.

Complete Change History

Every commit records:

  • What changed
  • Who changed it
  • When it changed

Lightweight and Fast

Git performs operations like:

  • Commit
  • Branch
  • Merge
  • Diff

very efficiently.


CI/CD Integration

Git integrates seamlessly with:

  • Jenkins
  • GitHub Actions
  • GitLab CI/CD
  • Azure DevOps

Safe Code Sharing

Repositories can be shared using:

  • GitHub
  • GitLab
  • Bitbucket

Conflict Resolution

Git provides tools to:

  • Detect merge conflicts
  • Compare file differences
  • Resolve conflicts efficiently

Summary of Benefits

Benefit Description
Version Control Track every code change
Collaboration Multiple developers work safely
Branching & Merging Isolated development
Offline Access Work without internet
Change History Complete commit history
Lightweight & Fast High performance
CI/CD Integration Works with Jenkins and GitHub Actions
Safe Code Sharing GitHub, GitLab, Bitbucket
Conflict Resolution Detect and resolve merge conflicts

Real-Time Example

During regression testing, I frequently modified existing automation scripts. Git allowed me to identify who originally wrote the code, review previous commits, and quickly revert to a stable version whenever an issue was introduced.


What is a Repository?

A repository (repo) is a storage location where Git maintains your project files along with the complete history of changes.

It stores:

  • Source code
  • Commits
  • Branches
  • Tags
  • Git metadata

A repository enables developers to track, review, and restore changes whenever needed.


Interview Answer

"A Git repository stores the project's source code together with its complete version history. It allows developers to manage commits, branches, tags, and previous versions of the project efficiently."


Repository Structure

 
Project Repository
│
├── Source Code
├── Branches
├── Commits
├── Tags
└── Complete Version History
 

Local Repository vs Remote Repository

Git repositories are of two types.


Local Repository

A local repository exists on your own computer.

Developers use it to:

  • Modify code
  • Stage files
  • Create commits
  • Test changes

Common commands:

 
git add
git commit
git status
 

Remote Repository

A remote repository is hosted on a server such as GitHub.

It is used for:

  • Collaboration
  • Sharing code
  • Backup
  • CI/CD integration

Common commands:

 
git push
git pull
git fetch
 

Comparison

Local Repository Remote Repository
Stored on your computer Hosted on GitHub, GitLab, Bitbucket
Used for development Used for collaboration
Create commits locally Share commits with team
Works offline Requires internet

Typical Workflow

 
Working Directory
        │
        ▼
Local Repository
        │
   git push
        │
        ▼
Remote Repository
        │
   git pull
        ▼
Other Team Members
 

Real-Time Example

Throughout the day, I commit my automation scripts to my local repository. Once the feature is completed and verified, I push the commits to GitHub. Other team members then pull the latest changes to keep their local repositories synchronized.


Initializing a Git Repository (git init)

The git init command creates a new Git repository in the current project folder.


Interview Answer

"When starting a new project, I navigate to the project directory and execute git init. This creates a hidden .git folder that enables Git version control for the project."


Syntax

 
git init
 

Example

 
cd SeleniumFramework

git init
 

What Happens After git init?

Git creates a hidden:

 
.git
 

directory containing:

  • Commit history
  • Branch information
  • Configuration
  • Repository metadata

Workflow

 
Project Folder
      │
      ▼
  git init
      │
      ▼
.git Directory Created
      │
      ▼
Repository Ready
 

Next Steps After Initialization

 
git add .

git commit -m "Initial project setup"
 

Alternative: Clone an Existing Repository

Instead of creating a new repository, download an existing one:

 
git clone <repository-url>
 

Frequently Asked Questions (FAQs)

1. What is Git?

Git is a Distributed Version Control System (DVCS) used to track changes in source code. It enables multiple developers to collaborate efficiently by maintaining complete version history, supporting branching and merging, and allowing rollback to previous versions whenever necessary.


2. What is the difference between Git and GitHub?

  • Git is a distributed version control system that runs locally and manages source code history.
  • GitHub is a cloud platform that hosts Git repositories and provides collaboration features such as Pull Requests, code reviews, issue tracking, and CI/CD integration.

3. What are the main benefits of Git?

Git provides several advantages, including:

  • Version Control
  • Team Collaboration
  • Branching and Merging
  • Offline Development
  • Complete Change History
  • High Performance
  • CI/CD Integration
  • Safe Code Sharing
  • Conflict Resolution

4. What is a repository in Git?

A repository (repo) is a storage location that contains the project's source code along with the complete history of commits, branches, tags, and other Git metadata required for version control.


5. What is the difference between a local repository and a remote repository?

  • A local repository resides on your computer and is used for development, staging, and committing changes.
  • A remote repository is hosted on platforms such as GitHub and is used for collaboration, sharing code, and maintaining a central copy of the project.

6. What command initializes a Git repository?

Use the following command:

 
git init
 

This command creates a hidden .git directory that stores the repository's configuration, branches, commits, and version history, enabling Git to begin tracking the project.