DEV Community


Five Essential Tools I Have Used for Years

stefanbuck profile image Stefan Buck Originally published at ・4 min read

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 way gco -. This is not a feature of SCM Breeze and works with cd 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

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 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 Fasd 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.

Discussion (0)

Editor guide