-C (detect Code movement) ignores file moves, the more you include, the smarter it is about ignoring non-semantic modifications (but it takes longer to run)
git log -S my_keyword
Keyword based search, applies to situations where a file/line may have been removed and is no longer in git
git config --global rerere.enabled true
rerere: REuse REcorded REsolution
Tells git to remember how merge conflicts were resolved, so it can properly resolve them if it encounters a similar conflict in the future
git config --global column.ui auto
Show git branches in multiple columns
git config --global branch.sort -committerdate
Sort git branches by recency of commit
SSH signing of GitHub commits
git maintenance start
Perform maintenance tasks for a repo on a cron job, instead of tacking it onto another git command that you actually run
This effectively makes things work much much faster
git clone
--filter=blob:none: Clone a repository without the historical files, except data for the latest commit
A tradeoff is that blames take longer to run, as it has to recursively pull historical blobs down
git sparse-checkout set <subdir1> <subdir2>
Work with a subset of files that you care about in a large monorepo