Using `git commit --fixup=` to track changes that need to be applied on top of another commit
git commit --fixup= and
git rebase --autosquash to easily track and squash fix commits.
Backporting/Replaying Changes Using `git cherry-pick`
git cherry-pick to make it easier to backport or replay Git commits across different versions of your codebase.
Safely Force Pushing with Git using `--force-with-lease=ref`
git push --force-with-lease=ref can save you from overriding others' changes on shared Git branches
My editorial workflow for blog posts
Taking you through the journey I go on when writing blog posts, from ideation to publishing the post.
Viewing Git history of a file in `git log` while ignoring file renames
How to track changes to files in Git without pesky file renames getting in the way, using
git log --follow
Merging multiple repositories into a monorepo, while preserving history, using `git subtree`
How to merge multiple repositories, with their history, into a single repository, using the
git subtree add command
Better Git Diff Outputs with Git Submodules
How to get nicer
diffs when working with submodules.
Clean up your Git branches
Remove any merged local or branches from your local Git repository
Viewing your diff while writing your commits with git commit --verbose
Making it easier to write commit messages by having the diff in your editor.
Saving Repetition with Git Commit Templates
Speed up your commit message writing by providing a template for when you run