Skip to content

Latest commit

 

History

History
47 lines (29 loc) · 2.99 KB

01-introduction.md

File metadata and controls

47 lines (29 loc) · 2.99 KB
title type published
イントロダクション
tech
true

イントロダクション

本文書は、コマンドラインツールghqの使い方を説明するものです。ghqのメンテナであるSongmu(Masayuki Matsuki)によって書かれています。

本文書のソースコードはMarkdownフォーマットでリポジトリhttps://github.com/Songmu/ghq-handbookから入手できます。

また、本文書の電子書籍をhttps://leanpub.com/ghq-handbookから購入できます。

ghqとはなにか

ghqはソースコードリポジトリの取得と管理を簡単にするものです。これは以下のシンプルなアイデアによるものです。

  • ghq get <target> で何でも簡単にソースコード取得
    • 柔軟なターゲット指定方式
    • 複数のVersion Control System(VCS)を透過的に扱う
  • ユニークなディレクトリ構造の強制
    • go getを参考にした{{GHQ_ROOT}}/{{HOST}}/{{PATH}}レイアウト

これは、GOPATH時代のgo getでのライブラリ取得ルールをGo以外にも適用したものと言えばGoプログラマには分かりやすいでしょう。ghqを使えば、複数プロジェクトの管理が楽になるだけではなく、気になったOSSを気軽にcloneできますし、リポジトリをアドホックなディレクトリにcloneしてしまい見失ってしまうこともなくなります。

ghqpecofzf等のインタラクティブフィルタツールと組み合わせれば、手元に数百を超えるリポジトリがあっても、瞬時に目的のリポジトリに移動できます。さらに、OSSをカジュアルに手元にcloneできるようになるため、ソースコードリーディングが捗るという嬉しい副作用もあります。実際作者の手元には1000を超えるリポジトリがあります。

ghqの"gh"はGitHubもしくはgitとhg、qはquickや「急」を意味しています。おそらく。

動作環境

ghqはGitHub上のリポジトリhttps://github.com/x-motemen/ghqで開発されています。Goで書かれており、複数OSでの動作を確認しています。公式で、Linux, macOS, Windowsの64bitバイナリビルドを提供しています。

本文書の執筆にあたっては、主に、ghq v1.0.0, macOS 10.15.2, zsh 5.7.1で確認をしていますが、OSやシェル環境による差異は少なくなるように留意しています。

ghqの導入

Homebrewでインストール可能です。

% brew install ghq

その他の環境では、GitHub Releasesから実行ファイルを取得できます。

Goの開発環境がある場合、開発リポジトリ( https://github.com/x-motemen/ghq )をgo getしたり、git cloneして自前ビルドすることも可能ですが、ghqの開発者でも無い限り、タグが打たれた安定ビルドの利用をおすすめします。