git open
[--issue] [--commit] [--suffix some_suffix] [remote-name] [branch-name]
git open
opens the repository's website in your browser. The major well known
git hosting services are supported.
-c
, --commit
Open the current commit. See EXAMPLES
for more information.
Only tested with GitHub & GitLab.
-i
, --issue
Open the current issue. When the name of the current branch matches the right pattern,
it will open the webpage with that issue. See EXAMPLES
for more information.
This only works on GitHub, GitLab, Visual Studio Team Services and Team Foundation Server at the moment.
-s
, --suffix
some_suffix
Append the given suffix to the url
-p
, --print
Just print the URL. Do not open it in browser.
-h
Show a short help text.
git open
It opens https://github.com/TRACKED_REMOTE_USER/CURRENT_REPO/
git open someremote
It opens https://github.com/PROVIDED_REMOTE_USER/CURRENT_REPO/
git open someremote somebranch
It opens https://github.com/PROVIDED_REMOTE_USER/CURRENT_REPO/tree/PROVIDED_BRANCH
git open --issue
If branches use naming convention of issues/#123
, it opens
https://github.com/TRACKED_REMOTE_USER/CURRENT_REPO/issues/123
git open --suffix pulls
It opens the URL https://github.com/TRACKED_REMOTE_USER/CURRENT_REPO/pulls
git open --print
It prints the URL https://github.com/TRACKED_REMOTE_USER/CURRENT_REPO/
git open --commit
Supposing that the current sha is 2ddc8d4548d0cee3d714dcf0068dbec5b168a9b2
, it opens
https://github.com/TRACKED_REMOTE_USER/CURRENT_REPO/commit/2ddc8d4548d0cee3d714dcf0068dbec5b168a9b2
git-open can automatically guess the corresponding repository page for remotes on the following git hosting services:
- github.com
- gist.github.com
- gitlab.com
- GitLab CE/EE (self hosted GitLab, see
CONFIGURATION
) - bitbucket.org
- Atlassian Bitbucket Server (formerly Atlassian Stash)
- Visual Studio Team Services
- Team Foundation Server (on-premises)
To configure git-open you may need to set some git config
options.
You can use --global
to set across all repos, instead of just the current repo.
git config [--global] option value
By default, git open
opens the remote named origin
. However, if your current branch is remotely-tracking a different remote, that tracked remote will be used.
In some instances, you may want to override this behavior. When you fork a project
and add a remote named upstream
you often want that upstream to be opened
rather than your fork. To accomplish this, you can set the open.default.remote
within your project:
git config open.default.remote upstream
This is equivalent to always typing git open upstream
.
To configure Gitea support you need to set the following option.
open.[gitdomain].forge
The git forge present at the git domain. This only needs to be set for Gitea because it uses another branch URL format.
Example
git config [--global] "open.https://gitea.internal.biz.forge" "gitea"
To configure GitLab support (or other unique hosting situations) you may need to set some options.
open.[gitdomain].domain
The (web) domain to open based on the provided git repo domain.
open.[gitdomain].protocol
The (web) protocol to open based on the provided git repo domain. Defaults to https
.
git config [--global] open.[gitdomain].domain [value]
git config [--global] open.[gitdomain].protocol [value]
Example
- Your git remote is at
ssh://git@git.internal.biz:7000/XXX/YYY.git
- Your hosted gitlab is
http://repo.intranet/subpath/XXX/YYY
git config [--global] "open.https://git.internal.biz.domain" "repo.intranet/subpath"
git config [--global] "open.https://git.internal.biz.protocol" "http"
You can run git-open
in echo
mode, which doesn't open your browser, but just prints the URL to stdout:
env BROWSER='echo' ./git-open
Jason McCreary did the initial hard work. Paul Irish based his project on his work. Since then many contributors have submitted great PRs.
git(1), git-remote(1), git-config(1), Project page