My Journey at LuxDevHQ: Version Control (The Basics)

Published: (January 18, 2026 at 04:57 AM EST)
3 min read
Source: Dev.to

Source: Dev.to

Pictorial Representation of Version Control

Introduction

In a previous post we set up a Windows virtual machine using VirtualBox, preparing us to start data‑science projects.

Data science, like most tech fields, ultimately revolves around code and data files. This raises several questions:

  • How do we store them?
  • How do we track changes?
  • How can we access them from different machines?
  • How can we share them with collaborators?

Version control answers all of these.

Version Control / Source Control

Version Control – “the practice of tracking and managing changes to software code.”1

It is a mechanism for keeping a history of changes made to computer files—especially source‑code files—allowing you to view old versions and, if needed, revert to a previous state.

Early attempts at collaboration relied on pendrives, email attachments, and shared folders. Those methods were clunky:

  • No built‑in way to identify who made which changes and when.
  • Naming conventions like project, project1, project‑latest proliferated.
  • Accidental overwrites were common, often resulting in lost work.

These pain points led to the rise of Version Control Systems (VCS)—software tools that automatically track and manage changes to files.

Benefits

  • Automated history – every update to the codebase is recorded.
  • Safe collaboration – work together without fearing permanent overwrites.
  • Easy rollback – revert individual files or the entire project to a prior state.
  • Structured audit trail – a clear, chronological view of the project’s evolution.

The most widely used—and the focus of this article and of LuxDevHQ—is Git (git‑scm.com).

Git

Git is a lightning‑fast, free, and open‑source distributed version‑control system designed to handle everything from small to very large projects with speed and efficiency.2 It was originally created by Linus Torvalds—the creator of Linux—as version control for the Linux kernel. Today, over 93 % of developers worldwide use Git1. It runs on all major operating systems and can be used inside containers such as Docker.


Installation

General installation instructions are available on the official site: .

Windows

  1. Visit the Windows installer page: .

  2. Download the latest installer (e.g., Git-2.52.0-64-bit.exe):

    Git Install for Windows

  3. Run the installer, accept the UAC prompt, and follow the Git Setup Wizard.
    The default options work for most users; you can adjust any setting you prefer.

  4. When the installation finishes, keep Launch Git Bash checked, uncheck View Release Notes, and click Finish.

    Git Bash Window


Initial Setup

Configure your identity globally (these values can be overridden per‑repository).

# Set your name
git config --global user.name "Your Name"

# Set your email address
git config --global user.email "you@example.com"

Verify the settings:

git config --list

Creating a Repository

  1. Create a project folder

    mkdir -p test-project
    cd test-project
  2. Add a README

    touch README.md
    echo "This is a test project showing how to set up a Git repository." >> README.md

    Verify its contents:

    cat README.md
  3. Add a sample Python script

    touch test.py && echo "print('Hello, World')" >> test.py
  4. Check the directory contents

    ls .

    You should see README.md and test.py.

  5. Initialize the repository

    git init
  6. Stage the files

    git add .
  7. Commit with a message

    git commit -m "Initial commit"

Your local repository is now ready to be pushed to a remote service (GitHub, GitLab, Bitbucket, etc.).


References

Footnotes

  1. Definition adapted from various software engineering sources. 2

  2. Git. (2026‑01‑18). Git. https://git-scm.com

Back to Blog

Related posts

Read more »

Introduction to Gitbash and Github

Definitions - Git is a widely used, free, and open‑source system designed to handle projects of all sizes. It enables developers to track changes in code and f...