Chalarangelo/30-seconds-of-code

View on GitHub
content/snippets/git/s/aliases.md

Summary

Maintainability
Test Coverage
---
title: Customize Git using aliases for common operations
shortTitle: Git aliases
type: cheatsheet
language: git
tags: [configuration,cheatsheet]
cover: compass-1
excerpt: Increase your productivity and reduce your cognitive load by creating aliases for many common git operations.
dateModified: 2024-05-03
---

Git allows you to create aliases for many common operations, making it easier to remember and execute them. As far as **customization** goes, this is one of the most powerful features Git offers, allowing you to create **shortcuts for complex commands** or to make your workflow more efficient.

## Creating aliases

Simply running `git config --global alias.<alias> <command>` will create an **alias for the specified command**. The alias can then be used in place of the command when running Git commands. If your command contains spaces, you can wrap it in quotes.

```shell
# Syntax: git config --global alias.<alias> <command>

git config --global alias.co checkout
# Creates an alias `co` for the `checkout` command

git config --global alias.cm "commit -m"
# Creates an alias `cm` for the `commit -m` command
```

Alternatively, you can use [edit the configuration file](/git/s/edit-config) and **add multiple aliases** all at once. This can be the more practical solution for adding more **complex commands**, as you don't have to worry about escaping special characters.

```shell
# Syntax: git config --global -e

git config --global -e
# Opens the global git configuration file in the default git text editor
```

## Useful aliases

Below you can find a list of aliases I've found personally useful for increasing productivity when working with Git. Feel free to use them as they are or modify them to suit your needs.

```editorconfig [~/.gitconfig]
[alias]
  co = checkout
  cob = checkout -b
  coo = !git fetch && git checkout
  br = branch
  brd = branch -d
  st = status
  aa = add -A .
  unstage = reset --soft HEAD^
  cm = commit -m
  amend = commit --amend -m
  fix = commit --fixup
  undo = reset HEAD~1
  rv = revert
  cp = cherry-pick
  pu = !git push origin `git branch --show-current`
  fush = push -f
  mg = merge --no-ff
  rb = rebase
  rbc = rebase --continue
  rba = rebase --abort
  rbs = rebase --skip
  rom = !git fetch && git rebase -i origin/master --autosquash
  save = stash push
  pop = stash pop
  apply = stash apply
  rl = reflog
```