Spot an error? Know how to make this page better? I appreciate pull requests.
Git
Commands I always seem to forget
Push to multiple remotes with a single push.
git remote set-url --add --push <remote> <newurl>
Delete branch from remote.
# version >= 1.7.0
git push <remote> --delete <branch>
# version < 1.7.0
git push <remote> :<branch>
Add forgotten files to last commit.
git commit --amend -C HEAD
Decide last n commits should be on a different branch. Stackoverflow
git branch newbranch
# can also git reset --hard <hash>
git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work.
git checkout <newbranch>
Rewrap text to textwidth
: gq
Checkout file from specific commit
git checkout <COMMIT> -- <path to file>
Update author on multiple commits
git rebase -i origin/main -x "git commit --amend --author 'Kyle Ondy <kyle@ondy.org>' -CHEAD"