Continuing my journey of building a Lightweight Version Control System A few days ago, I shared how I built the foundation of my own version control system by replicating 4 base commands like begin, init, add and commit. Today, I’ve added three new commands that make the system feel much more complete: 1️⃣ unstage - Removes files or folders from the staging area (undoes an add before committing). 2️⃣ status -  Shows the current state of the working directory, what’s staged, what’s modified, and what’s untracked. To detect modified files, I compare the hash of each file with the one stored in the previous commit. 3️⃣ log - Displays the complete commit history with commit IDs and messages. At the end, it also visualizes the internal linked list of commits, showing how each commit connects to the previous one, with the HEAD pointing to the latest commit. Here’s a short demo showing these commands in action 👇 Building this project continues to be an amazing learning experience. Recreating Git-like features from scratch is helping me truly understand how version control systems work. #SoftwareDevelopment #VersionControl #GitClone #NodeJS #LearningByBuilding #OpenSource

To view or add a comment, sign in

Explore content categories