Working with branches


git checkout -b $branchname
git push origin $branchname --set-upstream

Creates a new branch locally then pushes it.

Getting from remote

git fetch origin
git checkout --track origin/$branchname

Gets a branch in a remote.

Delete local remote-tracking branches

git remote prune origin

Deletes origin/* branches in your local copy. Doesn’t affect the remote.

List merged branches

git branch -a --merged

List outdated branches that have been merged into the current one.

Delete remote branch

git push origin :$branchname

Works for tags, too!

Get current sha1

git show-ref HEAD -s