diff --git a/Commands.md b/Commands.md index f661285..3c31168 100644 --- a/Commands.md +++ b/Commands.md @@ -3,6 +3,7 @@ - [`git archive-file`](#git-archive-file) - [`git authors`](#git-authors) - [`git back`](#git-back) + - [`git browse`](#git-browse) - [`git bug`](#git-featurerefactorbugchore) - [`git bulk`](#git-bulk) - [`git brv`](#git-brv) @@ -1480,3 +1481,11 @@ Sync local branch with origin/master ```bash $ git sync origin master ``` + +## git browse + +Opens the current git repository website in your default web browser. + +```bash +$ git browse +``` diff --git a/bin/git-browse b/bin/git-browse new file mode 100755 index 0000000..1a00175 --- /dev/null +++ b/bin/git-browse @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +if [[ $1 == "" ]] +then + remote=$(git remote | head -n 1) +else + remote=$1 +fi + +if [[ $remote == "" ]] +then + echo "Remote not found" + exit 1 +fi + +remote_url=$(git remote get-url $remote) + +if [[ $? -ne 0 ]] +then + exit $? +fi + +if [[ $remote_url = git@* ]] +then + url=$(echo $remote_url | sed -E -e 's/:/\//' -e 's/\.git$//' -e 's/\w*@(.*)/https:\/\/\1/') +elif [[ $remote_url = https* ]] +then + url=$(echo $remote_url | sed -E -e 's/\.git//') +fi + +case "$OSTYPE" in + darwin*) + # MacOS + open $url + ;; + msys) + # Git-Bash on Windows + start $url + ;; + linux*) + # Handle WSL on Windows + if uname -a | grep -i -q Microsoft + then + powershell.exe -NoProfile start $url + else + xdg-open $url + fi + ;; + *) + # fall back to xdg-open for BSDs, etc. + xdg-open $url + ;; +esac diff --git a/etc/bash_completion.sh b/etc/bash_completion.sh index de2bd2e..78343bf 100644 --- a/etc/bash_completion.sh +++ b/etc/bash_completion.sh @@ -150,3 +150,7 @@ _git_squash(){ _git_undo(){ __gitcomp "--hard --soft -h -s" } + +_git_browse(){ + __git_complete_remote_or_refspec +} diff --git a/etc/git-extras-completion.zsh b/etc/git-extras-completion.zsh index 0aa6eb5..d794439 100644 --- a/etc/git-extras-completion.zsh +++ b/etc/git-extras-completion.zsh @@ -454,6 +454,7 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ archive-file:'export the current head of the git repository to an archive' \ authors:'generate authors report' \ back:'undo and stage latest commits' \ + browse:'open repo website in browser' \ bug:'create bug branch' \ bulk:'run bulk commands' \ brv:'list branches sorted by their last commit date'\ diff --git a/man/git-browse.1 b/man/git-browse.1 new file mode 100644 index 0000000..7119083 --- /dev/null +++ b/man/git-browse.1 @@ -0,0 +1,34 @@ +.\" generated with Ronn/v0.7.3 +.\" http://github.com/rtomayko/ronn/tree/0.7.3 +. +.TH "GIT\-BROWSE" "1" "March 2020" "" "Git Extras" +. +.SH "NAME" +\fBgit\-browse\fR \- +. +.SH "SYNOPSIS" +\fBgit\-browse\fR [remote_name] +. +.SH "DESCRIPTION" +Opens the current git repository website in your default web browser\. +. +.SH "OPTIONS" + +. +.P +The name of the remote you wish to browse to\. Defaults to the first remote if not specified\. +. +.SH "EXAMPLES" +$ git open +. +.P +$ git open upstream +. +.SH "AUTHOR" +Written by Mark Pitman <\fIhttps://github\.com/mapitman\fR> +. +.SH "REPORTING BUGS" +<\fIhttps://github\.com/tj/git\-extras/issues\fR> +. +.SH "SEE ALSO" +<\fIhttps://github\.com/tj/git\-extras\fR> diff --git a/man/git-browse.html b/man/git-browse.html new file mode 100644 index 0000000..8b25b7f --- /dev/null +++ b/man/git-browse.html @@ -0,0 +1,119 @@ + + + + + + git-browse(1) - <View the web page for the current repository> + + + + +
+ + + +
    +
  1. git-browse(1)
  2. +
  3. Git Extras
  4. +
  5. git-browse(1)
  6. +
+ +

NAME

+

+ git-browse - +

+ +

SYNOPSIS

+ +

git-browse [remote_name]

+ +

DESCRIPTION

+ +

Opens the current git repository website in your default web browser.

+ +

OPTIONS

+ +

<remote_name>

+ +

The name of the remote you wish to browse to. Defaults to +the first remote if not specified.

+ +

EXAMPLES

+ +

$ git open

+ +

$ git open upstream

+ +

AUTHOR

+ +

Written by Mark Pitman <https://github.com/mapitman>

+ +

REPORTING BUGS

+ +

<https://github.com/tj/git-extras/issues>

+ +

SEE ALSO

+ +

<https://github.com/tj/git-extras>

+ + +
    +
  1. +
  2. March 2020
  3. +
  4. git-browse(1)
  5. +
+ +
+ + diff --git a/man/git-browse.md b/man/git-browse.md new file mode 100644 index 0000000..544d51b --- /dev/null +++ b/man/git-browse.md @@ -0,0 +1,35 @@ +git-browse(1) -- +================================ + +## SYNOPSIS + +`git-browse` [remote_name] + +## DESCRIPTION + +Opens the current git repository website in your default web browser. + +## OPTIONS + +<remote_name> + +The name of the remote you wish to browse to. Defaults to +the first remote if not specified. + +## EXAMPLES + + $ git open + + $ git open upstream + +## AUTHOR + +Written by Mark Pitman <> + +## REPORTING BUGS + +<> + +## SEE ALSO + +<> diff --git a/man/git-extras.md b/man/git-extras.md index 6b573cc..e065aa2 100644 --- a/man/git-extras.md +++ b/man/git-extras.md @@ -25,6 +25,7 @@ git-extras(1) -- Awesome GIT utilities - **git-archive-file(1)** Export the current HEAD of the git repository to an archive - **git-authors(1)** Generate authors report - **git-back(1)** Undo and Stage latest commits + - **git-browse(1)** - **git-brv(1)** List branches sorted by their last commit date - **git-bug(1)** Create bug branch - **git-bulk(1)** Run git commands on multiple repositories diff --git a/man/index.txt b/man/index.txt index 37175f5..802a65d 100644 --- a/man/index.txt +++ b/man/index.txt @@ -3,6 +3,7 @@ git-alias(1) git-alias git-archive-file(1) git-archive-file git-authors(1) git-authors git-back(1) git-back +git-browse(1) git-browse git-brv(1) git-brv git-bug(1) git-bug git-bulk(1) git-bulk