I’m presenting soon on Advanced Git. I feel a lot of Developers and DevOps engineers know enough git to the job, but sometimes that’s it. I want to help people be more comfortable with the git command line, and help alleviate some fear or hesitation in dealing with git edge cases.
While researching things, I came across a few neat tools I’m using to help describe things.
What is great about this tool is that I can draw git commit graphs pretty easily to describe what is happening as you execute commands. It helps create great graphs like this:
I do a lot of development on windows. CMD.exe isn’t the best experience to use or present with. The same can be said of regular powershell. I’ve leveraged git bash in the past, it works pretty well. But I have completely fallen in love with the Windows Terminal. Multiple profiles (for bash, wsl, powershell, cmd), a great font, and nice scalability, I’ve finally found a nice shell on windows.
Oh My _______
If you aren’t familiar with Oh My Posh (powershell), Oh My Bash (bash), or Oh My Zsh (zsh) please pay attention. These tools add some awareness to your shell experience. If you ‘cd’ into git folders, it can show the branch, how far ahead or behind you are, and many other details. It gives you situational awareness about where you are and your current state. There are also many themes to tweak and customize your command line.
I don’t use git GUIs in my day to day workflow. I typically interact with git via a command line. But there are some times when a gui is very helpful. Complex merges and rebases can be made clearer via gui, as well as a clear visualization of the git history. Don’t get me wrong, I can do that via command line:
git log --pretty=oneline --graph --decorate --all
But these tools make it much cleaner, clearer, and prettier.
I’m a big fan of tools that help me share ideas more effectively and these are a few that I think will help me explain git state.