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.
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 way
gco -. This is not a feature of SCM Breeze and works with
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!
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!
Fasd is a tool to access files and directories much quicker and more efficiently. Fasd 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 Fasd 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
In the past, I set up bash aliases for every single project, so I could switch between projects very quickly. Now with Fasd it just works and I don’t have to maintain a list of aliases anymore.
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.
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.
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!
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.
OctoLinker is a browser extension for GitHub which turns language-specific statements like
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.
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.