--- title: Easy Git Commit Targeting description: Shortened SHA hashes and relative offsets date: 2017-04-21 tags: - Tech --- A generally agreed upon goal of a developer is to use the mouse as little as possible. An often overlooked moment of touching the mouse is the seemingly inevitable moment of having to target a git commit via it's SHA hash. Truth is this doesn't need to be an ordeal. **Let's look at some alternative ways to target commits**. ## By Shortened SHA Hash Traditionally to find the `git diff 123abc456def789ghi` on a SHA you'd use the entire SHA hash. Instead, you can type just the first few characters and Git will figure out the rest. ``` bash git diff 123abc ``` ## Tilde A common target is the previous commit from the HEAD. Using `HEAD~` will specify the intention of one commit before the HEAD. ``` bash git diff HEAD~ ``` ### Past Tilde Adding a number after the tilde `~` will target a commit prior to the head equal to the number specified. ``` bash git diff HEAD~3 ``` ## Stacked Carets Alternatively, the number of caret characters after HEAD will similarly target a commit prior to HEAD equal to the number of carets. ``` bash git diff HEAD^^^ ``` ## Combine These Tricks So close! Ever want to target the commit just previous to a SHA hash? It's easier than you think. ``` bash git diff 123abc~ ``` # Summary Through a combination of shortened SHA hashes, HEAD, and relative tilde/caret characters anyone can fly through git history with confidence.