Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
8 posts found #github
What Are Git and GitHub? An Introduction to Version Control
DevOps PART 01

What Are Git and GitHub? An Introduction to Version Control

Why version control exists, how centralized and distributed tools differ and why Git and GitHub are not the same thing. We try distributed work by reading history and committing in a clone whose server is gone, then look at Git's short history, its place in DevOps and how the series is organized.

6 Nov 2026 8 min 3
Git Remote and Clone: origin, fetch, push and Upstream
DevOps PART 11

Git Remote and Clone: origin, fetch, push and Upstream

We see with real output what a remote is, git remote add, push -u and the upstream setting with a local bare repo standing in for GitHub, remote-tracking branches like origin/main, what git clone does, the split between fetch and merge, sharing a new branch, git remote show/rename and a rejected push.

6 Nov 2026 9 min 2
Connecting to GitHub: HTTPS, Personal Access Tokens and SSH
DevOps PART 13

Connecting to GitHub: HTTPS, Personal Access Tokens and SSH

From creating a repo on GitHub to the first push: why passwords stopped working in 2021, fine-grained versus classic personal access tokens, how credential helpers work, ed25519 SSH keys, gh auth login and transfer.credentialsInUrl, which catches tokens embedded in URLs.

6 Nov 2026 10 min 2
Pull Requests on GitHub: GitHub Flow, Reviews and Merge Methods
DevOps PART 14

Pull Requests on GitHub: GitHub Flow, Reviews and Merge Methods

Branch, commit, push and pull request: the six steps of GitHub flow, draft PRs, answering review with new pushes, how the merge commit, squash and rebase methods shape history, the branch-deletion trap after a squash, and keeping a fork in sync with upstream.

6 Nov 2026 10 min 3
Teamwork with Git: Branching Strategies, Rulesets and Conventional Commits
DevOps PART 15

Teamwork with Git: Branching Strategies, Rulesets and Conventional Commits

Starting from a force push that wipes a teammate's commit, we compare GitHub flow, Git flow and trunk-based development; branch protection versus rulesets, server-side protection with receive.denyNonFastForwards, CODEOWNERS and Conventional Commits.

6 Nov 2026 10 min 2
Git Interactive Rebase and Squash: Tidying History Before a PR
DevOps PART 21

Git Interactive Rebase and Squash: Tidying History Before a PR

We turn a messy feature branch into three clean commits with git rebase -i: the todo list, pick, reword, edit, squash, fixup, drop and reordering, the commit --fixup plus --autosquash flow, how it differs from GitHub's squash merge, and the experimental git history reword in Git 2.54.

6 Nov 2026 10 min 2
Git Tags and Releases: Marking Versions, git describe and GitHub Releases
DevOps PART 23

Git Tags and Releases: Marking Versions, git describe and GitHub Releases

We mark releases with git tag: lightweight versus annotated tags, the tag object, semver, why push doesn't send tags, --tags versus --follow-tags, reading git describe output, GitHub Releases, deleting tags and why moving a published tag is dangerous.

6 Nov 2026 8 min 3
Git Hooks and Commit Signing: From pre-commit to SSH Signatures
DevOps PART 25

Git Hooks and Commit Signing: From pre-commit to SSH Signatures

We write pre-commit and commit-msg hooks with real output, share them with the team through core.hooksPath, and try Git 2.54's config-based hooks and git hook list. Then we sign commits with an SSH key, verify them with an allowed signers file and look at what GitHub's Verified badge requires.

6 Nov 2026 11 min 2
Blog Map