Git Product home page Git Product logo

ghq's Introduction

ghq(1) Build Status

NAME

ghq - Manage remote repository clones

DESCRIPTION

'ghq' provides a way to organize remote repository clones, like go get does. When you clone a remote repository by ghq get, ghq makes a directory under a specific root directory (by default ~/.ghq) using the remote repository URL’s host and path.

$ ghq get https://github.com/motemen/ghq
# Runs `git clone https://github.com/motemen/ghq ~/.ghq/github.com/motemen/ghq`

You can also list local repositories (ghq list), jump into local repositories (ghq look), and bulk get repositories by list of URLs (ghq import).

SYNOPSIS

ghq get [-u] [-p] [--shallow] [--vcs] [--look] [--silent] (<repository URL> | <host>/<user>/<project> | <user>/<project> | <project>)
ghq list [-p] [-e] [<query>]
ghq look (<project> | <path/to/project> | <host>/<user>/<project> | <repository URL>)
ghq import [-u] [-p] [--shalow] [--vcs] [--parallel] < FILE
ghq root [--all]

COMMANDS

get

Clone a remote repository under ghq root directory (see DIRECTORY STRUCTURES below). If the repository is already cloned to local, nothing will happen unless '-u' ('--update') flag is supplied, in which case the local repository is updated ('git pull --ff-only' eg.). When you use '-p' option, the repository is cloned via SSH protocol.
If there are multiple ghq.root s, existing local clones are searched first. Then a new repository clone is created under the primary root if none is found.
With '-shallow' option, a "shallow clone" will be performed (for Git repositories only, 'git clone --depth 1 …​' eg.). Be careful that a shallow-cloned repository cannot be pushed to remote.
Currently Git and Mercurial repositories are supported.

list

List locally cloned repositories. If a query argument is given, only repositories whose names contain that query text are listed. '-e' ('--exact') forces the match to be an exact one (i.e. the query equals to project, user/project or host/user/project) If '-p' ('--full-path') is given, the full paths to the repository root are printed instead of relative ones.

look

Look into a locally cloned repository with the shell.

import

If no extra arguments given, reads repository URLs from stdin line by line and performs 'get' for each of them.

root

Prints repositories' root (i.e. ghq.root). Without '--all' option, the primary one is shown.

CONFIGURATION

Configuration uses 'git-config' variables.

ghq.root

The path to directory under which cloned repositories are placed. See DIRECTORY STRUCTURES below. Defaults to ~/.ghq.
This variable can have multiple values. If so, the first one becomes primary one i.e. new repository clones are always created under it. You may want to specify "$GOPATH/src" as a secondary root (environment variables should be expanded.)

ghq.<url>.vcs

ghq tries to detect the remote repository’s VCS backend for non-"github.com" repositories. With this option you can explicitly specify the VCS for the remote repository. The URL is matched against '<url>' using 'git config --get-urlmatch'.
Accepted values are "git", "github" (an alias for "git"), "subversion", "svn" (an alias for "subversion"), "git-svn", "mercurial", "hg" (an alias for "mercurial"), and "darcs".
To get this configuration variable effective, you will need Git 1.8.5 or higher.
For example in .gitconfig:

[ghq "https://git.example.com/repos/"]
vcs = git
ghq.ghe.host

The hostname of your GitHub Enterprise installation. A repository that has a hostname set with this key will be regarded as same one as one on GitHub. This variable can have multiple values. If so, ghq tries matching with each hostnames.
This option is DEPRECATED, so use "ghq.<url>.vcs" configuration instead.

ENVIRONMENT VARIABLES

GHQ_ROOT

If set to a path, this value is used as the only root directory regardless of other existing ghq.root settings.

DIRECTORY STRUCTURES

Local repositories are placed under 'ghq.root' with named github.com/user/repo.

~/.ghq
|-- code.google.com/
|   `-- p/
|       `-- vim/
`-- github.com/
    |-- google/
    |   `-- go-github/
    |-- motemen/
    |   `-- ghq/
    `-- urfave/
        `-- cli/

INSTALLATION

homebrew

brew install ghq

go get

go get github.com/motemen/ghq

build

git clone https://github.com/motemen/ghq .
make install

Built binaries are available from GitHub Releases. https://github.com/motemen/ghq/releases

AUTHOR

motemen <[email protected]>

ghq's People

Contributors

aaa70 avatar at-grandpa avatar babarot avatar dtan4 avatar gmidorii avatar itiut avatar jjv avatar k0kubun avatar kentaro avatar kkka avatar knu avatar kuboon avatar makimoto avatar mattn avatar mollifier avatar motemen avatar moznion avatar msh5 avatar naofumi-fujii avatar osamu2001 avatar raviqqe avatar sakihet avatar sixeight avatar smizy avatar songmu avatar sorah avatar syohex avatar tcnksm avatar troter avatar uetchy avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.