Collection of intermediate but handy git tricks. This post will be updated now and then.
Apply patch from email
git am -3 --signoff <name of patch>.patch
<object id> could be master, 35f1cab or v1.4, for example.
git bisect start git bisect good <object id> git bisect bad <object id> # test the given revision # say if it's bad or not with git bisect bad # continue this way and exit with git bisect reset
Branch off commit
git branch new_branch <ref>
Commit part of diff from a file
git add -p
Create emailable patch
# edit # commit git format patch origin/master --stdout > my_changes.patch
Where origin/master is the base for references.
Discard parts of a diff
git checkout -p # is hunk too big? 's' to split it
If you want to add some changes that you'd want included in the previous un-pushed commit
git commit -am "just a commit" # make changes git commit --amend -a
Move hunk of commit to another commit
git rebase -i HEAD~2 # p ... # e ... <- edit this #edit files # git add; git commit --amend; git rebase --continue
Remove remote branch
git push <remote> :<branch>
Show log with patches
git log -p # for a specific file git log -p <path>