Keeping up with daily tasks can feel like a never-ending juggling act. Between managing personal goals, school assignments, work projects, and even gym routines, it’s easy to get overwhelmed by all the moving pieces. Sure, there are tons of apps and software out there to help streamline the process but let’s be honest, most of them are cluttered and ironically, end up adding to the overwhelm.
But what if there was a simpler way to keep everything organized while also sharpening your developer skills? If you’re a developer, you likely already know Git as the go-to tool for version control. Here’s a fresh twist: why not use Git as your personal to-do list? Imagine a repository where each branch represents a different area of your life—personal, uni, work, and gym. With each new task or goal, you’ll commit it to the appropriate branch, tracking your progress without the noise of a bloated app.
This setup not only helps you stay on top of your goals but also gives you hands-on practice with core Git topics. From creating branches to making commits and merging changes, this tutorial introduces essential commands in a way that’s easy to pick up. Many new developers can feel a bit intimidated by Git’s learning curve, but by using it daily to manage your life, you’ll build confidence and learn Git concepts in a practical, engaging way.
What Are Git and GitHub?
Before we dive in, let’s clear up what Git and GitHub are. Think of Git as a digital time machine for your files. It’s a version control system that helps you track changes in code or files, so you can go back to earlier versions, keep multiple versions (branches) at once, and track your progress over time. Developers use Git to manage their code as they work, making sure they have a record of changes and can collaborate without overwriting each other’s work.
GitHub is a popular online platform that hosts Git repositories in the cloud, making it easier to share, collaborate, and back up your code. You can think of it as a social network for developers, where people showcase projects, work together on open-source code, and contribute to others' work. Using GitHub with Git is like using an online hard drive specifically designed for code—perfect for syncing, sharing, and working with others.
So, in this guide, we’ll focus on Git, but feel free to use GitHub if you want to store and share your life-planning “to-do list” in the cloud!
Understanding Git Status, Staging, and Committing
Before you start adding tasks to your Git to-do list, it’s important to understand how to check the status of your repository, and how to stage and commit your changes.
1. Checking status with git status
git status
This command gives you a snapshot of what's happening in your repository. Here’s what it shows:
- Untracked Files: These are new files that Git isn't tracking yet.
-
Changes Not Staged for Commit
: These are files you've modified but haven't yet marked for the next commit. -
Changes to be Committed
: These are files you've staged, meaning they’re ready to be included in the next commit.
2. Staging Changes
Once you know which files you want to include in your next commit, it’s time to stage them. Staging is like telling Git which changes to get ready for the next snapshot. You can stage specific files with:
# Stage changes made to tasks.txt
git add tasks.txt
Or, if you want to stage everything in your current directory, you can use:
# Stage all changes in the current directory
git add .
3. Committing Changes
After staging your changes, the next step is to commit them. To commit your changes, use the git commit command along with a message that describes what you’ve done. Here we're using commit messages to track individual tasks.
git commit -m "fixed that bug that’s been haunting my dreams"
The -m flag allows you to add a message.
Step 1: Initializing a Git Repository
First things first, create a Git repository to hold your tasks. Think of it as a digital “notebook” for your to-do list. Let’s call this repository life-planner—but feel free to get creative with the name!
Open your terminal: This is where you’ll type commands to interact with Git. If you’re on Windows, use Command Prompt or PowerShell. On Mac or Linux, use Terminal.
#This command makes a folder named life-planner.
mkdir life_planner
This command makes a folder named life-planner.
#Navigate into your new folder so you can start working inside it:
cd life_planner
The cd command (short for "change directory") switches you to the life-planner folder.
#Initialize the Git repository inside this folder. This sets up Git to start tracking changes
git init
You’re all set to start using Git to organize your to-do list!
Step 2: Set Up Your Task Categories with Branches
Imagine each branch as a different part of your life. Think of each branch as a distinct category of tasks you want to manage. Each branch will contain tasks specific to that category.
First, create a master branch called life, from which all your other branches will branch out:
# Create and switch to 'life' branch
git checkout -b life
# Create a file to track tasks
touch tasks.txt
# Check if 'tasks.txt' is untracked
git status
# Stage 'tasks.txt'
git add .
# Save your changes to the 'life' branch with a commit message
git commit -m 'life init'
Create branches for each category: Each time, go back to life to branch out from the base:
# Go to 'life' branch
git checkout life
# Create 'uni' branch
git checkout -b uni
# Return to 'life'
git checkout life
# Create 'work' branch
git checkout -b work
Step 3: Add Tasks as Commits
Whenever you complete a task, follow these steps to switch to the relevant branch, add your task to tasks.txt, and commit it.
Switch to the right branch for your task. If the task is related to work, switch to the work branch:
# Switch to the right branch for your task
git checkout work
# Add your task to the file by appending a new task to tasks.txt
echo "Made code look like I know what I'm doing" >> tasks.txt
# Stage your changes to prepare them for committing
git add tasks.txt
# Commit your task with a descriptive message
git commit -m "Made code look like I know what I'm doing"
By executing these commands, you log your task in Git with a clear message. This process allows you to keep track of your tasks across different branches effectively.
Repeat this process whenever you complete a task in any of your categories. Your tasks.txt file will serve as a comprehensive log of all your completed tasks.
Step 4: View Your Task History with git log
To see a list of all tasks completed in each category, use git log on each branch. Here’s how:
git log --oneline
you might see output like this:
e84d3b2 Made code look like I know what I am doing
b5c2a1f Updated UI spacing by 1px
c4b1e3a Optimized code by deleting unnecessary print statements
This gives you a quick overview of the tasks you’ve completed.
Step 5: Summarize Your Day by Merging Branches
To get an overview of everything you’ve accomplished in one place, merge all your branches into main at the end of each day. This helps you keep track of what you’ve done across all categories.
#Switch to the main branch:
git checkout life
# Merge the personal branch
git merge personal
# Merge the uni branch
git merge uni
# Merge the work branch
git merge work
# Merge the gym branch
git merge gym
Now, your "life" branch will contain a complete log of your tasks for the day!
After merging, you can view your daily summary in main with:
git log --oneline
you might see output like this:
e84d3b2 Organized desk for 30 mins, worked for 5
b5c2a1f Procrastinated productively for uni work
c4b1e3a Survived cardio without collapsing
Each commit represents a task you completed, giving you a clear view of your day’s productivity.
I know this may not be the most practical way to manage your to-do list, but it’s a fantastic exercise for anyone looking to get comfortable with using Git. By treating tasks as commits and organizing them into branches, you’re engaging with core Git commands in a unique, hands-on way. The purpose of this blog was to show that Git is not only powerful but also versatile enough to be used creatively. If you learned something here or gained more confidence with Git, then I’ve succeeded in my goal!
If you have any suggestions or ideas on how to improve this approach, please feel free to share. You can even take it further by syncing your to-do list to the cloud with GitHub, allowing for an accessible, trackable task manager that’s uniquely yours. Happy coding, and happy planning!
Top comments (7)
Finally, a to-do list where I can blame my procrastinations on (merge) conflicts 😅
On a serious note, this is brilliant approach for those (like me) who prefer minimal setup over fancy, and unnecessarily expensive productivity apps.
This sounds like it's more valuable as a way to teach you to think in Git than it is to manage a task list :D Props to you, I would have never thought of this crossover
That was the goal haha, thanks!
Interesting idea. Might be useful to use git worktree to allow you to have all branches checked out simultaneously.
Finding another use for git
Really creative, will definitely send it to anyone while explaining git to them, deserves a bookmark.
Ok, so
git
has its pros, but I won't ever use git and simple in the same sentance, especially when we are talking about documentation - syncing a bunch of markdown files, like your TODOs.Let's consider what will get in the way one way of the other of you getting things done if you choose to use git for documentation like that
.DS_Store
andtodos.md.swap
, and oh shit, how I do remove that now that is has been commited ?