Open git/hg/svn remote url in web browser from terminal.
Support:
- Mac OS X
- Windows
- Linux/Unix
,
- git
- hg
- svn
and
- GitHub
- GitLab
- BitBucket
- Gitea
GitCafeMerged into coding.net.- Coding
- gitee
- CSDN gitcode.net
- AntCode
- Custom
If you are use GitBucket, tell me please.
$ npm install -g gitopen
$ git remote -v
origin git@github.com:hotoo/gitopen.git (fetch)
origin git@github.com:hotoo/gitopen.git (push)
$ git branch
* master
$ cd subdir
$ gitopen # Open git repository homepage, like: https://github.com/hotoo/gitopen
$ gitopen :master # Open git repository on given branch name.
$ gitopen -b master # Same the `:master`
$ gitopen issues # https://github.com/hotoo/gitopen/issues
$ gitopen #1 # https://github.com/hotoo/gitopen/issues/1
$ gitopen pr # New a pull-request
$ gitopen !1 # Open merge/pull request by id.
$ gitopen prs # https://github.com/hotoo/gitopen/pulls, alias `pulls`, `mrs`.
$ gitopen wiki # Open wiki pages.
$ gitopen release # Open releases page.
$ gitopen tags # Open tags page.
$ gitopen commits # Open commits page.
$ gitopen brs # Open branches page, alias `branchs` and `branches`.
$ gitopen {hash} # Open commit page by hash code.
$ gitopen README.md # Open remote blob url. default use current working branch.
$ gitopen README.md -b branch # Open remote blob url by given branch.
$ gitopen README.md :branch # Open remote blob url by given branch.
$ gitopen path/to/dir # Open remote tree url. default use current working branch.
# global command.
$ gitopen @lizzie # https://github.com/lizzie
$ gitopen @hotoo/gitopen # https://github.com/hotoo/gitopen
Default support github.com,
bitbucket.org,
gitlab.com,
gitea.com,
gitcafe.com,
coding.net,
gitee.com,
AntCode
and CSDN gitcode.com.
If you are use GitHub Enterprise,
GitLab Community Edition (CE), GitLab Enterprise Edition (EE),
Atlassian Stash,
GitCafe Enterprise
You need config in ~/.gitconfig file:
[gitopen "github.company.com"]
type = github
protocol = https
[gitopen "gitlab.company.net"]
type = gitlab
protocol = http
You can config it by git command-line:
; global
$ git config --global gitopen.github.company.com.type github
$ git config --global gitopen.github.company.com.protocol https
; set local repo default remote name.
$ git remote add gitlabRemote git@gitlab.com:hotoo/gitopen.git
$ git config gitopen.remote gitlabRemote
Also you can config it in ~/.gitopenrc file for global settings:
github.company.com:
type: github
protocol: https
gitlab.company.net:
type: gitlab
protocol: http
github.company.com
,gitlab.company.net
is your company's git web server domain name.type
is the type of your company's git web server, supportgithub
,gitlab
,gitbucket
,gitea
,coding
,gitee
,gitcode
,antcode
.protocol
: protocol of your company's git web server,http
orhttps
.
Else if you are using other custom web system build your owner git server, you need config like:
git.example.com:
type: custom
protocol: http
scheme:
issues: /path/to/issues
wiki: /path/to/wikis
more: [reference to github scheme](./lib/scheme/github.js)
...
You can git alias in ~/.gitconfig:
[alias]
open = !gitopen
Then you can use command like:
$ git open
Open git repository homepage.
Open git repository issues list page.
Open new issue with title (optional).
Open git repository issue by id.
Open git repository pulls list page.
Open pull request or merge request from given branch or current working branch for git repository.
alias:
$ gitopen pr
$ gitopen mr
for example:
$ gitopen pr # current working branch to compare default branch.
$ gitopen pr a # given branch(a) to compare default branch.
$ gitopen pr a b # branch b to compare branch a.
$ gitopen pr a...b # branch b to compare branch a.
Open git repository pull request or merge request by id.
alias:
$ gitopen pr1
$ gitopen mr#1
support @
, /
, #
, :
, -
or without sparator.
Open file blame information page.
Open git repository commits list page.
alias:
$ gitopen commit
$ gitopen ci
Open commit page by hash code.
Open git repository wiki home page.
alias:
$ gitopen wikis
Open git repository tags list page.
alias:
$ gitopen tag
Open git repository milestones list page.
Open git repository milestones by given id.
alias:
$ gitopen milestone@id
support @
, /
, #
, :
, -
sparator.
Open new milestone for git.
Open git repository releases list page.
alias:
$ gitopen release
Open new release by tag name.
Edit release by tag name.
Open given file on given branch, default use current working branch.
alias:
$ gitopen filename :branch
$ gitopen filename -b branch
Open given directory on given branch, default use current working branch.
alias:
$ gitopen directory :branch
$ gitopen directory -b branch
[LOCAL COMMAND] Open new snippet.
[GLOBAL COMMAND] Open https://gist.github.com/
alias:
$ gitopen snip
$ gitopen gist
Open network page.
[GLOBAL COMMAND] Open profile page on GitHub.
[GLOBAL COMMAND] Open given repository homepage on GitHub.
Support all of gitopen in repository local commands (not support global commands), like:
$ hgopen
open homepage.$ hgopen issues
open issues list page.$ hgopen #id
op issues by id.- ...
Open svn repository on current working directory.
Specify file/directory path, default is current working directory.
If you want open a file or directory name is reserved words, like issues
and
pr
, you can use --path
option instead.
$ gitopen -p issues
$ gitopen --path pr
Specify git/hg branch name, default is current working branch.
Specify git remote name, default is origin
.
Display detail information for debug.
sudo apt-get install xdg-utils --fix-missing
If this tool is useful for you, please Star this repository.
And maybe you want to donate me via Alipay / WeChat:
Thank you.