My Opinionated Git Conventions
My (very) opinionated Git conventions. If you follow these, you will be much less likely to create messed up git histories, and your git setup will make much more sense.
My (very) opinionated Git conventions. If you follow these, you will be much less likely to create messed up git histories, and your git setup will make much more sense.
An idea for a postmortem template.
Sleeping on macOS messes up Thunderbolt USB devices, so I just can't have it happening.
sudo pmset -a sleep 0
For good measure, also enable "Prevent automatic sleeping when the display is off" under System Settings > Energy
A guide on how to setup git commit signing through GPG and GitHub.
To show the macOS app switcher on all screens:
defaults write com.apple.dock autohide-delay -int 0
defaults write com.apple.dock autohide-time-modifier -float 0.1
To see the change, restart the Dock with killall Dock
.
To show the macOS app switcher on all screens:
defaults write com.apple.dock appswitcher-all-displays -bool true
To see the change, restart the Dock with killall Dock
.
This is everything I install and setup on a fresh Mac machine.
For a long time I, someone on my team, would wait for backend pipelines to finish before manually publishing deploys from Netlify. I finally automated it: here's how! (If you have auto-publish turned on for your production deploys, you don't need this.)
If you set --prefer-offline
to true
in npm, naively thinking (like I did) that this will speed up your npm installs, you will be disappointed (like I was). Annoyingly, this setting causes npm to also cache which packages and versions don't exist. Thus, updating a dependency to a newly published version causes npm to think it doesn't exist and, instead of doing anything about it, npm will simply error out.
Clone a repo with worktrees setup from the start:
mkdir <repo-name>
cd <repo-name>
git clone --bare --filter=blob:none <git-url>
cd <repo-name>.git
Some options to help your sanity:
# always prune on fetch
git config fetch.prune true
# allow `git fetch origin <branch-name>` to work as expected (create a remote ref)
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
To create a new branch:
git worktree add ../<branch-name>
cd ../<branch-name>
To copy a remote branch (note that this will only work with the above fetch config set):
git fetch origin <branch-name>
git worktree add ../<branch-name>
cd ../<branch-name>
To create a new branch based on a remote branch:
git worktree add ../<branch-name> -b <branch-name> --no-track origin/dev
cd ../<branch-name>