01Git & GitHub: Zero to Advanced · Part 1 Why Version Control Exists: A Short History of Git The story that explains why Git works the way it does. From final_v2_REALLY_final.zip to SourceSafe, SVN and the 2005 drama that made Torvalds write Git. Aug 7, 2026 · 6 min read →
06Git & GitHub: Zero to Advanced · Part 6 GitHub: Your Code in the Cloud How your local repository and GitHub stay in sync. Remotes, clone, push, pull and fetch, how SSH keys work, and why your profile is your new portfolio. Aug 7, 2026 · 7 min read →
10Git & GitHub: Zero to Advanced · Part 10 Under the Hood: How Git Thinks — and Where to Go Next Commits are snapshots, not diffs. The object model that makes Git fast, plus tags, releases, branching strategies, a CI teaser and a daily-habits checklist. Aug 7, 2026 · 7 min read →
05Set Up a Windows PC for .NET Development · Part 5 Git for Windows Settings That Stop the Warnings The Git for Windows settings behind each warning, run for real. Line endings, long paths, credentials, dubious ownership, identity, default branch, editor. Oct 14, 2026 · 6 min read →
Fixes Git SSH clone: 'git@github.com: Permission denied (publickey).' GitHub refused the SSH clone because no key was offered. Why a new key alone is not enough, and the fix, are inside. Nov 6, 2026 · 2 min read →
Fixes Git push: 'The upstream branch of your current branch does not match the name of your current branch' Your branch tracks a remote branch with another name. Why git push refuses with push.default simple, and the fix, are inside. Nov 6, 2026 · 2 min read →
Fixes Git on Windows: 'error: unable to unlink old ... Invalid argument' Another process held the file open during a switch. Why Git still exits 0 with the old file, and the restore fix, are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: bad config line 10 in file .git/config' A hand edit broke a line in the repository config. Why git config cannot repair it, and the fix, are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: Unable to create .git/index.lock: File exists' A leftover lock file blocks every Git write. How to check no Git process is running, then remove the stale index.lock safely. Nov 6, 2026 · 2 min read →
Fixes Git: 'warning: adding embedded git repository', a repository inside a repository Git stored a pointer, not the files, of a nested repository. Add the files properly or make it a submodule; both fixes inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: a branch named already exists' from branch, checkout -b and switch -c You asked Git to create a branch whose name is taken. Switch to it instead, or reset it with switch -C; both commands are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'error: No such remote' from git remote remove, rename and set-url The remote name you used is not configured in this repository. List names with git remote -v or add the remote; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: Need to specify how to reconcile divergent branches' Git pull stops when both sides have new commits. The merge, rebase and pull.rebase fixes that worked, and which one to pick, are inside. Oct 30, 2026 · 3 min read →
Fixes Git: 'Your local changes to the following files would be overwritten by merge' Git pull stops when incoming commits touch a file you edited. Why it happens, and the stash or commit fix that worked, are inside. Oct 30, 2026 · 3 min read →
Fixes Git: 'error: remote origin already exists' The repository already has a remote called origin. Check it with git remote -v, then change its URL or remove it; both fixes are inside. Oct 30, 2026 · 2 min read →
Fixes Git: 'Author identity unknown *** Please tell me who you are' Git has no name and email to put on your commit. The two git config lines that fix it, and how to see where a value comes from, are inside. Oct 30, 2026 · 3 min read →
Fixes Git: 'fatal: 'origin' does not appear to be a git repository' Git push found no remote named origin, or one with a wrong path. Add or correct it with git remote, then push with -u; both cases are inside. Oct 30, 2026 · 2 min read →
Fixes Git: .gitignore not working for a file that is already tracked .gitignore never applies to files Git already tracks. Untrack them with git rm --cached and test a rule with git check-ignore; both are inside. Oct 30, 2026 · 3 min read →
Fixes Git: 'error: src refspec main does not match any' Git has no local branch named main to push. Pushing before the first commit, or from a master branch, causes it; both fixes are inside. Oct 23, 2026 · 3 min read →
Fixes Git: 'error: pathspec 'develop' did not match any file(s) known to git' Git checkout found no branch or file named develop. Create the branch, or fetch it from the remote first; both fixes are inside. Oct 23, 2026 · 2 min read →
Fixes Git: 'fatal: could not read Username for 'https://github.com': terminal prompts disabled' Git needed a username and was not allowed to ask for one. Why CI jobs and scripts hit it, and the token, credential manager and URL fixes are inside. Oct 23, 2026 · 3 min read →
Fixes Docker in Git Bash: 'cannot access C:/Program Files/Git/data' Git Bash rewrote your container path into a Windows path. Why MSYS does it, how it breaks bind mounts and the MSYS_NO_PATHCONV fix are inside. Oct 9, 2026 · 2 min read →
Fixes Git: 'fatal: not a git repository (or any of the parent directories)' Git found no .git folder here or in any parent folder. Why the search fails, and when to cd into the repository or run git init. Oct 9, 2026 · 2 min read →
Fixes Git: 'error: Your local changes to the following files would be overwritten by checkout' (commit, stash or discard) Git will not switch branches over uncommitted edits. Commit them, stash them with git stash, or discard them with git restore; each fix shown. Oct 9, 2026 · 2 min read →
Fixes Git: 'warning: in the working copy of 'file', LF will be replaced by CRLF the next time Git touches it' The warning is harmless and comes from core.autocrlf. What it means for the file, and the one-line .gitattributes fix that silences it for good. Oct 9, 2026 · 2 min read →
Fixes Git for Windows: 'fatal: unable to stat ...: Filename too long' A path in the repo is over 260 characters on Windows. Why Git stops or skips the file, and the core.longpaths fix that worked. Oct 9, 2026 · 2 min read →
Fixes Git push: 'fatal: The current branch ... has no upstream branch' A new local branch has no upstream, so git push will not guess. Push once with --set-upstream, or turn on push.autoSetupRemote; both fixes are inside. Oct 2, 2026 · 2 min read →
Fixes Git pull: 'fatal: refusing to merge unrelated histories' Your repo and the remote have different first commits. Typical after a host-created README plus git init; one --allow-unrelated-histories pull fixes it. Oct 2, 2026 · 3 min read →
Fixes Git in WSL: 'fatal: detected dubious ownership in repository at /mnt/c/...' Git in WSL refuses a repo on the Windows drive as root. Files under /mnt/c belong to your default user; the fix is one safe.directory line. Sep 25, 2026 · 2 min read →
Developer Craft Git Basics: Commits, Branches, and Why You Need Them Git is a time machine for your code. Learn the handful of commands you will use every day, and the mental model that makes them finally click. Jul 30, 2026 · 6 min read →
Fixes Git SSH clone: 'Host key verification failed. fatal: Could not read from remote repository.' An SSH clone with no known_hosts entry stops here. The cause in a fresh container and the safe ssh-keyscan fix are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'You are in detached HEAD state' after checking out a tag or commit Checking out a tag leaves HEAD on no branch. What it means and how to keep a commit made there are inside. Nov 6, 2026 · 2 min read →
Fixes Git cherry-pick: 'error: commit ... is a merge but no -m option was given' Cherry-picking a merge commit needs a parent number. What -m 1 copies, shown on a real merge, is inside with the fix. Nov 6, 2026 · 2 min read →
Fixes Git push: '! [rejected] main -> main (non-fast-forward)', tip of your branch is behind The remote holds a commit your branch lacks. Pull with rebase when someone pushed, force with lease when you amended; both fixes inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'The following untracked working tree files would be overwritten by checkout' Your untracked file clashes with a file the branch tracks. Move it or stash it with --include-untracked first; checkout and merge fixes inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'You have not concluded your merge (MERGE_HEAD exists)' A merge is still open in your repository. Commit the resolved merge or abort it, then merge or pull again; both commands are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'error: the branch is not fully merged' from git branch -d The branch has commits that are not in your current branch. See which ones, then merge them or delete with -D; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: ambiguous argument HEAD: unknown revision or path not in the working tree' A new repository has no commit, so HEAD points at nothing. Unstage without HEAD or make the first commit; the commands are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'error: cannot pull with rebase: You have unstaged changes' A rebase pull refuses to run over uncommitted edits. Use --autostash, or commit or stash first; the captured fix is inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'error: Pulling is not possible because you have unmerged files' An earlier pull stopped on a conflict that is still open. Resolve, add and commit, or abort the merge; both fixes are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'error: cannot delete branch used by worktree at' from git branch -d The branch is checked out here or in a linked worktree. Switch away or remove the worktree, then delete; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'There is already a rebase-merge directory, I wonder if you are in the middle of another rebase' An earlier rebase stopped on a conflict and was never finished. Continue or abort it, then rebase again; both fixes are inside. Nov 6, 2026 · 2 min read →
Fixes Git: 'fatal: tag already exists' and push '! [rejected] (already exists)' A tag name is taken locally or on the remote. Move it with tag -f and a forced push, or tag a new version; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Git push: '! [rejected] main -> main (fetch first)' and 'failed to push some refs' Someone pushed to the branch since your last pull. Pull their commits with --rebase or a merge, then push again; both fixes are shown inside. Oct 2, 2026 · 2 min read →
02Git & GitHub: Zero to Advanced · Part 2 Your First Repository: init, add, commit Install Git and make your very first commits. Learn the photo-album mental model and a clear picture of the working directory, staging area and history. Aug 7, 2026 · 7 min read →
03Git & GitHub: Zero to Advanced · Part 3 Reading History and Undoing Small Mistakes Read history with git log and git diff. Then the level-one rescue moves: unstage, discard, amend, plus .gitignore and commit messages that explain why. Aug 7, 2026 · 7 min read →
04Git & GitHub: Zero to Advanced · Part 4 Branches: Parallel Universes for Your Code Branches are Git's superpower. Cheap, instant parallel timelines you create, switch between and merge back, as the workshop project levels up. Aug 7, 2026 · 7 min read →
09Git & GitHub: Zero to Advanced · Part 9 The Rescue Kit: Reflog, Reset, Revert and Bisect Nothing in Git is ever truly lost. Reflog resurrects deleted work, reset and revert undo the right way, and bisect finds the exact commit that broke your app. Aug 7, 2026 · 7 min read →
05Git & GitHub: Zero to Advanced · Part 5 Merging and Conflicts, Without Fear Merge conflicts are a conversation, not a disaster. Cause one on purpose, read the markers calmly, and resolve it like it is no big deal. Aug 7, 2026 · 7 min read →
07Git & GitHub: Zero to Advanced · Part 7 Pull Requests and Code Review, Together The pull-request workflow, end to end. Open one from a real branch, review it, and learn what the merge, squash and rebase buttons actually do. Aug 7, 2026 · 7 min read →
08Git & GitHub: Zero to Advanced · Part 8 Rewriting History (Carefully): Rebase, Cherry-Pick and Stash Rewrite history without losing anything. Interactive rebase to tidy commits, cherry-pick to copy them, stash for work in progress, and the one golden rule. Aug 7, 2026 · 7 min read →
AI & Modern Coding What Are AI Agents? From Chatbots to Digital Coworkers An AI agent is a language model with tools, memory and a goal. How agents work, what they can safely do today, and how developers fit into the loop. Jul 30, 2026 · 5 min read →
Fixes MSBuild: 'error MSB4025: The project file could not be loaded. Name cannot begin with the < character' MSB4025 after a merge means conflict markers sit in the csproj. The XML reader stops at them; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Windows: 'psql' is not recognized as an internal or external command (cmd), or as the name of a cmdlet (PowerShell) psql.exe is installed but its folder is not on your PATH. Run it by full path, add the bin folder to PATH or use docker exec; tested fixes inside. Oct 23, 2026 · 2 min read →
03Docker for .NET Developers on Windows · Part 3 Files In and Out: Bind Mounts and Volumes on Windows Docker bind mounts and volumes on Windows, run for real. The three path spellings, what Git Bash does to them, where a volume lives, and the build-speed gap. Oct 14, 2026 · 6 min read →
12From Prompt to Production · Part 12 Ship It: A VPS, nginx, systemd — and the Headers SignalR Needs Publish Blazor and SignalR to a Linux VPS. An AI-written runbook, GitHub Actions CI, and the three nginx lines between works locally and works in production. Aug 9, 2026 · 7 min read →
Fixes Docker: 'invalid container name ...: only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed' The --name value holds a space or a slash, which Docker refuses. Use letters, digits, dots, dashes or underscores; the fix is inside. Nov 6, 2026 · 2 min read →
Fixes Bash: './deploy.sh: cannot execute: required file not found' from CRLF line endings The script has CRLF line endings from Windows. One sed command or dos2unix fixes the copy, and a .gitattributes line stops it coming back. Oct 23, 2026 · 3 min read →
Fixes Docker: 'exec /entrypoint.sh: no such file or directory' from CRLF line endings The entrypoint script has Windows CRLF line endings. Why Linux reports it missing, the LF fix and the .gitattributes line are inside. Oct 22, 2026 · 2 min read →
Fixes Docker: 'cannot attach stdin to a TTY-enabled container because stdin is not a terminal' docker exec -it fails when stdin is not a terminal. Older Docker says 'the input device is not a TTY'. Use winpty in Git Bash, or -i without -t in scripts. Sep 25, 2026 · 3 min read →