DevTools Capstone: Building and Deploying a Full-Stack App with Git, Docker, and SQL

This is the final article in the DevTools series. In the previous 17 articles, you learned Git, Docker, and SQL separately. Now you will use all three together to build and deploy a real project. We will build a simple task management API with a PostgreSQL database. You will set up a Git repository with feature branches, write the API, Dockerize everything, add a CI/CD pipeline with GitHub Actions, and deploy it to a server. ...

June 16, 2026 · 15 min

Git Tutorial #5: Advanced Git — Undo Mistakes and Power Features

In the previous tutorial, we learned to work with GitHub and set up CI/CD. Now it is time for the advanced tools. Every developer makes mistakes. You commit the wrong file. You break something and need to find out which commit caused it. You need to grab a single commit from another branch. Git has tools for all of this. In this tutorial, you will learn to undo mistakes, recover lost work, and use power features that save hours of debugging. ...

June 12, 2026 · 9 min

Git Tutorial #4: GitHub Workflow — Collaborating with Others

In the previous tutorial, we learned to merge and rebase branches. But everything happened on your local computer. Real projects involve multiple people working together. This is where GitHub comes in. GitHub is a platform that hosts Git repositories online. It lets you share code, review changes, and automate testing. In this tutorial, you will learn to push code to GitHub, create pull requests, and set up basic CI/CD with GitHub Actions. ...

June 12, 2026 · 9 min

Git Tutorial #3: Merging and Rebasing — Combining Work

In the previous tutorial, we learned to create branches and work on them. But branches are only useful if you can bring the work back together. Git gives you two ways to combine branches: merge and rebase. In this tutorial, you will learn both, understand the difference, and know when to use each one. We will also cover merge conflicts and git stash. What Is Merging? Merging takes two branches and combines them. You switch to the branch you want to update, then merge the other branch into it. ...

June 11, 2026 · 8 min

Git Tutorial #2: Branching — Work on Multiple Things at Once

In the previous tutorial, we learned to create a repository, stage files, and make commits. All our work happened on one branch — main. But what if you want to add a new feature without breaking your working code? What if two people need to work on different things at the same time? This is why branches exist. A branch is a separate line of development. You can make changes on a branch without affecting other branches. When you are done, you merge the changes back. ...

June 11, 2026 · 9 min

Git Tutorial #1: Git Basics — Your First Repository

Every developer uses Git. It does not matter if you write Python, JavaScript, Rust, or Kotlin. Git tracks your code changes, lets you go back to any previous version, and helps you work with other developers. In this tutorial, you will install Git, create your first repository, and make your first commit. By the end, you will understand how Git tracks changes. What Is Git? Git is a version control system. It saves snapshots of your project over time. Each snapshot is called a commit. ...

June 11, 2026 · 9 min

Git Commands Cheat Sheet 2026 — Every Command You Need

Bookmark this page. Use Ctrl+F (or Cmd+F on Mac) to find what you need. This cheat sheet covers Git commands from basics to advanced workflows. Last updated: April 2026 Setup and Config Command Description git config --global user.name "Alex" Set your name (shown in commits) git config --global user.email "alex@example.com" Set your email git config --global init.defaultBranch main Set default branch name git config --list Show all config settings git init Create a new repository git clone <url> Clone a remote repository git clone <url> <folder> Clone into a specific folder Basic Workflow Command Description git status Show changed, staged, and untracked files git add <file> Stage a file for commit git add . Stage all changes git add -p Stage changes interactively (hunk by hunk) git commit -m "message" Commit staged changes git commit -am "message" Stage tracked files and commit (does NOT stage untracked files) git commit --amend Modify the last commit (add files or fix message) git diff Show unstaged changes git diff --staged Show staged changes (ready to commit) git diff HEAD Show all changes (staged + unstaged) Working Directory → git add → Staging Area → git commit → Repository Viewing History Command Description git log Show commit history git log --oneline One line per commit git log --oneline --graph --all Visual branch graph git log -5 Show last 5 commits git log --author="Alex" Filter by author git log --since="2026-01-01" Commits after a date git log -- <file> History of a specific file git show <commit> Show details of a commit git blame <file> Show who changed each line Branching Command Description git branch List local branches git branch -a List all branches (local + remote) git branch <name> Create a new branch git branch -d <name> Delete a branch (safe — won’t delete unmerged) git branch -D <name> Force delete a branch git branch -m <old> <new> Rename a branch git switch <name> Switch to a branch git switch -c <name> Create and switch to a new branch git checkout <name> Switch to a branch (older syntax) git checkout -b <name> Create and switch (older syntax) Branch Workflow (ASCII Diagram) main: A --- B --- C --- F (merge commit) \ / feature: D --- E - Merging Command Description git merge <branch> Merge branch into current branch git merge --no-ff <branch> Force a merge commit (no fast-forward) git merge --squash <branch> Merge all commits as one (does not auto-commit) git merge --abort Cancel a merge in progress Resolving Conflicts When Git cannot auto-merge, it marks conflicts in the file: ...

March 17, 2026 · 6 min