Five Essential Tools I Have Used for Years
Tags: productivity, tools, devtools
Published: 2020-08-17 17:08:32

---
title: Five Essential Tools I Have Used for Years
published: true
description: Lots of tools come and go, but some become a crucial part of our workflow. Today I’m going to share the five essential tools that I have used for years.
canonical_url: https://stefanbuck.com/blog/five-essential-tools-i-have-used-for-years
tags: productivity,tools,devtools

---

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](https://github.com/scmbreeze/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!

{% youtube rsnSbNULmm0 %}

### 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](https://github.com/clvv/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](https://git-scm.com/docs/githooks#_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](https://gist.github.com/stefanbuck/17502152342770be6db5ff40bb3af17a) 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](https://pullrequestbadge.com/), 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](https://stefanbuck.com/blog/automatically-add-links-to-your-pull-request-description).

## 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](https://giphy.com/apps/giphycapture) 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](https://octolinker.now.sh) 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.

{% youtube IoOnBSMyRe8 %} 

### 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](https://octolinker-demo.now.sh/OctoLinker/live-demo/blob/master/index.js#LO2)!

---

I love all five tools &mdash; they save me a lot of time and I use them every day! I'd love to hear your favorite productivity tools.