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
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