gitopen
v3.3.0
Published
Open git remote url in web browser from terminal.
Downloads
38
Readme
gitopen
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
- ~~GitCafe~~ Merged into coding.net.
- Coding
- gitee
- CSDN gitcode.net
- AntCode
- Custom
If you are use GitBucket, tell me please.
Install
$ npm install -g gitopen
Usage
$ git remote -v
origin [email protected]:hotoo/gitopen.git (fetch)
origin [email protected]: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
Configuration
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 [email protected]: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
gitopen Commands
$ gitopen
Open git repository homepage.
$ gitopen issues
Open git repository issues list page.
$ gitopen issue [title]
Open new issue with title (optional).
$ gitopen #1
Open git repository issue by id.
$ gitopen pulls
Open git repository pulls list page.
$ gitopen pull [branch-name]
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.
$ gitopen !1
Open git repository pull request or merge request by id.
alias:
$ gitopen pr1
$ gitopen mr#1
support @
, /
, #
, :
, -
or without sparator.
$ gitopen blame path/to/file
Open file blame information page.
$ gitopen commits
Open git repository commits list page.
alias:
$ gitopen commit
$ gitopen ci
$ gitopen {hash}
Open commit page by hash code.
$ gitopen wiki
Open git repository wiki home page.
alias:
$ gitopen wikis
$ gitopen tags
Open git repository tags list page.
alias:
$ gitopen tag
$ gitopen milestones
Open git repository milestones list page.
$ gitopen milestones@id
Open git repository milestones by given id.
alias:
$ gitopen milestone@id
support @
, /
, #
, :
, -
sparator.
$ gitopen milestone
Open new milestone for git.
$ gitopen releases
Open git repository releases list page.
alias:
$ gitopen release
$ gitopen release new [tag-name]
Open new release by tag name.
$ gitopen release edit
Edit release by tag name.
$ gitopen filename [--branch ]
Open given file on given branch, default use current working branch.
alias:
$ gitopen filename :branch
$ gitopen filename -b branch
$ gitopen directory [--branch ]
Open given directory on given branch, default use current working branch.
alias:
$ gitopen directory :branch
$ gitopen directory -b branch
$ gitopen snippet
[LOCAL COMMAND] Open new snippet.
[GLOBAL COMMAND] Open https://gist.github.com/
alias:
$ gitopen snip
$ gitopen gist
$ gitopen network
Open network page.
$ gitopen @profile
[GLOBAL COMMAND] Open profile page on GitHub.
$ gitopen @profile/repository-name
[GLOBAL COMMAND] Open given repository homepage on GitHub.
hgopen Commands
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.- ...
svnopen Commands
$ svnopen
Open svn repository on current working directory.
Options
-p, --path
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
-b, --branch
Specify git/hg branch name, default is current working branch.
-r, --remote
Specify git remote name, default is origin
.
-v, --verbose
Display detail information for debug.
FAQ
xdg-open: not found
in Linux
sudo apt-get install xdg-utils --fix-missing
License
Donate
If this tool is useful for you, please Star this repository.
And maybe you want to donate me via Alipay / WeChat:
Thank you.