#!/bin/bash # Opens the github page for a repo/branch in your browser. # https://github.com/paulirish/git-open/ # # git open # git open [remote] [branch] # are we in a git repo? git rev-parse --is-inside-work-tree &>/dev/null if [[ $? != 0 ]] then echo "Not a git repository." exit 1 fi # assume origin if not provided # fallback to upstream if neither is present. remote="origin" if [ ! -z "$1" ] then remote="$1" fi remote_url="remote.${remote}.url" giturl=$(git config --get $remote_url) if [ -z "$giturl" ] then echo "$remote_url not set." exit 1 fi # URL normalization giturl=${giturl/git\@github\.com\:/https://github.com/} giturl=${giturl%\.git} # get current branch if [ -z "$2" ] then branch=`git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||'` else branch="$2" fi if [ ! -z "$branch" ] then giturl="${giturl}/tree/${branch}" fi # simplify URL for master giturl=${giturl/tree\/master/} # get corrent open browser command if [ $(uname -s) == "Darwin" ] then open=open else open=xdg-open fi # open it in a browser $open $giturl exit 0