Tools
GitHub Foundations #4 Domain 3-1: Collaboration — Issues, Labels, Milestones, and Templates
The first half of the collaboration domain, the most heavily weighted area of the GitHub Foundations exam. Mentions and references in Issues, closing keywords, labels and milestones, issue templates and forms, notification management, and GitHub Flavored Markdown — all from the exam's point of view.
GitHub Foundations #3 Domain 2: Working with Repositories — Branches, Tags, Releases, and Gists
GitHub Foundations Domain 2: creating repositories and community files, the default branch, how tags relate to releases, gists, plus the exam staples — the differences between fork, clone, and template repositories, and repository visibility.
GitHub Foundations #2 Domain 1: Git and GitHub Basics — Version Control and Product Structure
The first GitHub Foundations domain: the exam-oriented essentials of Git, the boundary between Git and GitHub, the personal account / Organization / Enterprise structure, and the feature differences between the Free, Team, and Enterprise plans.
GitHub Foundations #1: Exam Overview — Structure and Study Strategy
An overview of GitHub Foundations, the official entry-level GitHub certification: exam structure, the seven domains, and registration. We also lay out a study strategy that combines the official resources with the Git track on this blog.
Overwrote Commits with git push --force — Recovery and Prevention
A recovery guide for when a force push wipes a teammate's commits from the remote branch. It covers the three recovery paths — a teammate's local clone, your remote-tracking reflog, and the hosting service's records — plus the settings that prevent a repeat.
Committed a Large File to Git? History Cleanup and Migrating to LFS
What to do when a push is rejected by the 100 MB limit or the repository has swollen to several GB. From the diagnosis that finds the largest blobs, through filter-repo history cleanup, to migrating still-needed files to Git LFS.
Committed a Secret to Git? Rotate the Key First, Then Clean History with filter-repo
A response procedure for the incident where an AWS key, an API token, or a .env file was committed and pushed. Priority one is not cleaning history but invalidating the key. We also cover rewriting history with filter-repo and the prevention tooling.
Getting Out of Git Detached HEAD — Causes and Recovering Commits
What the "You are in detached HEAD state" warning actually means, explained through its structure, with an escape route for each situation. Includes how to keep commits made in this state by putting a branch on them.
Microsoft Graph in Practice #7: Operations — Throttling, Pagination, Delta Queries, Change Notifications
Raising Graph automation to operational grade: retries that honor 429 and Retry-After, the pagination (@odata.nextLink) that silently truncates data when missed, delta queries replacing polling (deltaLink state management), change notification subscriptions (validation handshake, renewal, lifecycleNotificationUrl), and JSON batching — closing the series.
Microsoft Graph in Practice #6: Teams — Reading Messages, and the Three Routes for Sending Notifications
Facing the most famous wall in Graph's Teams integration head-on: reading teams, channels, and messages; why application permissions can't post to channels (migration-only), and the three alternative routes — a delegated automation account, Workflows incoming webhooks, and bots — with selection criteria.
Recovering Deleted Git Commits and Branches with reflog
How to recover commits wiped by git reset --hard and branches deleted with -D, using the reflog. Covers what the reflog records, what it does not, and the cases where recovery is impossible.
Microsoft Graph in Practice #5: Files in OneDrive and SharePoint — Upload Sessions and Sharing
Automating files with Graph: the shared drive/driveItem model, the path differences between personal OneDrive and SharePoint site drives, downloads and simple uploads up to 250MB, upload sessions for large files (320KiB-multiple chunks, resume), creating sharing links, and narrowing permissions with Sites.Selected.