git
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
Bisect
<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
Merge commits
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>