Five Essential Tools I Have Used for Years
Lots of tools come and go, but some become a crucial part of our workflow. In this post I’m going to share the five essential tools that I have used for years.
1. SCM Breeze
If I have to pick one single tool, it would be SCM Breeze. It’s a collection of shortcuts that makes it much easier to interact with the Git command line and other system commands. With SCM Breeze I no longer have to type paths for commands such as git add ./random.txt
. I can simply type gs
to get a list of all recently modified files. In this list, each file gets a number next to it. Now I can write ga 1
to add the first file to my staging list. If I need to add multiple files I can pass a range like ga 1-3
or even use a combination like ga 1-3 6 9
.
To switch branches, I type gb
to get a list of all branches, followed by gco 3
to check out the third branch listed in the previous operation.
Did you know that you can go back and forth between branches using a dash? Just type
git checkout -
or the SCM Breeze waygco -
. This is not a feature of SCM Breeze and works withcd
too.
Another super handy feature is the ll
shortcut. This calls ls -al
under the hood, but adds a number for each entry as well. This allows me to perform other commands like rm 1-3
on top of that, super neat!
Why I use it
Git is the tool I use every day. SCM Breeze is an essential tool to speed up my Git workflow. It’s very easy to use, integrates smoothly into my workflow, works with other system commands, and is overall a huge time-saver. Highly recommended!
2. Fasd
Update: Fasd is not maintained anymore, but zoxide is a really good replacement.
Fast Zoxide is a tool to access files and directories much quicker and more efficiently. It records all files and directories I have accessed in the background and ranks them by “frecency” (a combination of the words “frequency” and “recency“). Then I can use zoxide to jump to directories by just a few key identifying characters. For example to access ~/user/stefan/code/octolinker
all I have to write is z octo
.
Why I use it
In the past, I set up bash aliases for every single project, so I could switch between projects very quickly. Now with Zoxide it just works and I don’t have to maintain a list of aliases anymore.
3. Prefix commit message
In my day job, we prefix every single commit with the related JIRA ticket number. I quickly got bored of typing the JIRA ticket number over and over again. I utilized the prepare-commit-msg git hook to check the current branch name and automatically prefix the commit message with this JIRA ticket number. The JIRA commit message git hook script is available as a gist.
Why I use it
Because I’m lazy! And I like to automate boring recurring tasks. I can’t imagine prefixing my commits by hand anymore. In addition, this pattern works well with Pull Request Badge, a GitHub App I wrote primarily for myself.
If you want to learn more about Pull Request Badge, you can check out my other post how to automatically add links to a pull request.
4. Giphy Capture
I often add an image or a GIFs to a pull request description to help explain a visual change. I've tried many different apps, but Giphy Capture is the best way to create gifs!
Why I use it
The ability to trim and cut the recorded GIF straight in Giphy Capture is the main reason why I used it. Apart from that, the app is simple and easy to use.
5. OctoLinker
OctoLinker is a browser extension for GitHub which turns language-specific statements like include
, require
or import
into links. I wrote the first version in 2013. It’s still actively maintained, supports over 20 languages / tools, and is trusted by over 25000 developers.
Why I use it
I use OctoLinker primarily for reviewing Pull Requests. OctoLinker makes it easy to discover unknown dependencies and allows me to jump to relative files with a single click. It integrates smoothly with the GitHub UI and makes reviewing pull requests faster and better. Give it a try!
I love all five tools — they save me a lot of time and I use them every day! I'd love to hear your favorite productivity tools — I’m @buckstefan on Twitter.