Merge: --no-ff vs default

--no-ff stands for no-fastforward.

Using no-fastfoward keeps the history of commits, including making a merge commit.

If you don't use this flag, the default merge behaviour will bring all commits into the merge target. This can be bad if you need to revert an entire feature (which comes down to being one "merge commit" when you use --no-ff)

Deleting all git branches that have already been merged.

git branch --merged | grep -v '\*\|master\|develop' | xargs -n 1 git branch -d
git branch -r --merged | grep -v '\*\|master\|develop' | sed 's/origin\///' | xargs -n 1 git push --delete origin

Get a commit list since last tag.

Good for making release notes / changelogs.

git log ..HEAD --oneline


A tar file, often called a tarball, is a collection of files wrapped up in one single file for easy storage.

tar -xzf tarfile

I commonly forget the order of symlinking something.

# ln -s  
ln -s /mnt/external-drive ~/mydrive


Fixing Scaling on hi-dpi screens.

# run xrandr to find the name of your display.

# set your scale.
xrandr --output eDP-1 --scale 1.6x1.6

Read more.


What does it do?

The fundamental purpose of an init system is to initialize the components that must be started after the Linux kernel is booted (traditionally known as “userland” components). The init system is also used to manage services and daemons for the server at any point while the system is running. With that in mind, we will start with some simple service management operations.

Common Snippets

sudo systemctl start   # start the service
sudo systemctl status  # check status of service
sudo systemctl list-units   # list of all of the active units that