![]() |
![]()
| ![]() |
![]()
NAMEghq - 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/x-motemen/ghq # Runs `git clone https://github.com/x-motemen/ghq ~/ghq/github.com/x-motemen/ghq` You can also list local repositories (ghq list). SYNOPSISghq get [-u] [-p] [--shallow] [--vcs <vcs>] [--look] [--silent] [--branch] [--no-recursive] [--bare] [--partial blobless|treeless] <repository URL>|<host>/<user>/<project>|<user>/<project>|<project> ghq list [-p] [-e] [<query>] ghq create [--vcs <vcs>] <repository URL>|<host>/<user>/<project>|<user>/<project>|<project> ghq rm [--dry-run] <repository URL>|<host>/<user>/<project>|<user>/<project>|<project> ghq root [--all] COMMANDSget Clone a remote repository under ghq root directory (see
DIRECTORY STRUCTURES below). ghq clone is an alias for
this command. 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. With '--branch' option, you can clone the repository with specified branch. This option is currently supported for Git, Mercurial, Subversion and git-svn. The 'ghq' gets the git repository recursively by default. We can prevent it with '--no-recursive' option. With '--bare' option, a "bare clone" will be performed (for Git repositories only, 'git clone --bare ...' eg.). With '--partial' option, a "partial clone" will be performed (for Git repositories only, in 'blobless' mode, 'git clone --filter=blob:none ...', in 'treeless' mode, 'git clone --filter=tree:0 ...' eg.). 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.
root Prints repositories' root (i.e.
ghq.root). Without '--all' option, the primary one is
shown.
rm Remove local repository. If '--dry-run' option is given,
the repository is not actually removed but the path to it is printed.
create Creates new repository.
CONFIGURATIONConfiguration 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 last 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"), "darcs", "fossil", "bazaar", and "bzr" (an alias for "bazaar"). To get this configuration variable effective, you will need Git 1.8.5 or higher. ghq.<url>.root The "ghq" tries to detect the remote
repository-specific root directory. With this option, you can specify a
repository-specific root directory instead of the common ghq root directory.
The URL is matched against '<url>' using 'git config --get-urlmatch'. Example configuration (.gitconfig):[ghq "https://git.example.com/repos/"] vcs = git root = ~/myproj ENVIRONMENT VARIABLESGHQ_ROOT If set to a path, this value is used as the only root
directory regardless of other existing ghq.root settings.
DIRECTORY STRUCTURESLocal repositories are placed under 'ghq.root' with named github.com/user/repo. ~/ghq |-- code.google.com/ | `-- p/ | `-- vim/ `-- github.com/ INSTALLATIONmacOSbrew install ghq Void Linuxxbps-install -S ghq GNU Guixguix install ghq Windows + scoopscoop install ghq go getgo install github.com/x-motemen/ghq@latest condaconda install -c conda-forge go-ghq .URL https://github.com/asdf-vm/asdf" asdf-vm"asdf plugin add ghq asdf install ghq latest .URL https://github.com/jdx/mise" mise-en-place"mise install ghq mise use ghq buildgit clone https://github.com/x-motemen/ghq . make install Built binaries are available from GitHub Releases. <https://github.com/x-motemen/ghq/releases> HANDBOOKYou can buy "ghq-handbook" from Leanpub for more detailed usage. <https://leanpub.com/ghq-handbook> The source Markdown files of this book are also available for free from the following repository. <https://github.com/Songmu/ghq-handbook> Currently, only Japanese version available. Your translations are welcome! AUTHOR•motemen <motemen@gmail.com>
•
<https://github.com/sponsors/motemen>
•Songmu <y.songmu@gmail.com>
•
<https://github.com/sponsors/Songmu>
|