Git cheat sheets are a dime-a-dozen but I think this one is awfully concise for its scope.
- Visually covers branching (WITH the commands – rebasing the current branch can be confusing for the unfamiliar)
- Covers reflog
- Literally almost identical to how I use git (most sheets are either Too Much or Too Little)
Interactive rebase? There’s no GUI that actually does that well, if at all. And it’s a massive part of my daily workflow.
The CLI is far, far more powerful and has many features that GUIs do not.
It’s also scriptable. For example, I often like to see just the commits I’ve made that diverge from master, along with the files changed in each. This can be accomplished with
git log --oneline --stat --name-status origin/master..HEAD
. What’s more, since this is just a CLI command, I can very easily make a keybind in vim to execute the command and stick it’s output into a split window. This lets me use git as a navigation tool as I can then very quickly jump to files that I’ve changed in some recent commit.This is all using a standard, uniform interface without mucking around with IDE plugin settings (if they even can do such a thing). I have many, many other examples of scripting with it, such as loading side-by-side diffs for all files in the worktree against some particular commit (defaulting to master) in vim in a tabpage-per-file, which I often use to review all of my changes before making a commit.
There are cases where instead of
origin/master..HEAD
you may want to use@{upstream}..HEAD
instead to compare with the upstream of your current branch. It’s unfortunately quite unknown.