Category: Git
-
Symptoms, not Causes: Addressing Some Common Complaints about Git Rebase
This article is based on a LinkedIn comment I wrote in response to a comment mentioning the following two problems in relation to Git Rebase: I’ve heared these complaints many times before, so here is my response: These are (unfortunately still common) symptoms of solved problems, but I can empathize…
-

Effective Git: Beyond the Basics
We all have to start somewhere. For most of us, our Git journey begins with about 5 commands and the mental model of a file-sharing tool like Dropbox or OneDrive: Upload my files, download my colleagues’ files, maybe resolve a conflict now and then (“use mine”). This is fine, we…
-

Git Tip: Word Diff
If you use Git in the command line, when using commands like `git diff` and similar ones, it does a line-by-line diff by default. This is also what most pull request tools (GitHub etc.) do. This is perfectly fine for most situations. Less widely known is the fact that you…
-

Git Myth: “git fetch just downloads meta-data”
This is a misconception that I’ve seen or heard many times, sometimes almost in those exact words. Reality: `git fetch` downloads the actual commits from the remote repository. That’s the actual code versions, available locally. When you fetch, all commits from the remote branches are copied to your local repo,…
-

Intentional Commits: Continuous Feedback
Intentional commits is the term I use for habits and workflows that help with creating Git commits1 exactly the way we intend to. The opposite are incidental commits, with changes that “just so happened”. For many developers, even quite experiences ones, Git can feel a bit like black magic and…
-

On Formatting Commit Messages
Many developers are unaware that there is a quasi-standard convention for commit messages originating from Git itself and the Linux kernel. Following this convention, which involves a concise imperative summary and optional detailed information in a specific format, can result in a more organized and searchable commit history.
