41
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「リポジトリ多すぎてとっ散らかる問題」をghqで解決!

Posted at

最近、ライブラリなどのソースコードをAIエージェントに読ませる機会が多く、そのたびにローカルにgit cloneしてくることが増えました。

しかし、困った問題が一つありました。それは、「リポジトリの数が多すぎて整理整頓ができていない」という課題です。

皆さんは、ローカルにクローンしたリポジトリをどのように管理されているでしょうか?僕は野放図にフラットに並べていたのですが、そのせいでどこに何があるのか分からなくなってしまいました。

本稿では、こうした問題を解決してくれるghqというツールについて紹介します!

Go言語のライブラリ管理から学ぶ

まず、どう整理したらいいものかと考えたところ、「そういえば、Goのライブラリってうまく整理できてたな〜」ということを思い出しました。

Go言語では、ライブラリは以下のようなツリー構成で管理されています:

github.com/
├── [user1]/
│   ├── [repo1]/
│   └── [repo2]/
└── [user2]/
    ├── [repo1]/
    └── [repo2]/

これは、GitHubのURLの階層構造をそのままディレクトリ構造に反映したものです。非常に直感的で、どこに何があるかが一目瞭然です。

手動でやるには面倒すぎる問題

この構造を自分のリポジトリ整理にも真似したいと思ったのですが、git cloneだけでこれを実現しようとすると結構面倒です。

  1. まず、ユーザー名のディレクトリを作るためにmkdir -p github.com/[user]を実行
  2. 作成したディレクトリにcd
  3. そこでgit cloneを実行

少なくとも3ステップはやることがあって、こんなんじゃ「整理するぞ」と意気込んでも、僕だったら三日坊主で終わっちゃいます💦

理想は、GitHubのURLをコピペするだけで、上のようなディレクトリ構造を自動で作ってくれるツールです。そんなツールは無いかな?と思って調べてみました。

ghqとの出会い

そして見つけたのが、ghqというツールでした。

使い方は非常にシンプルです:

ghq get --look https://github.com/kubernetes-sigs/multicluster-runtime.git

このコマンドを実行すると、~/codes/github.com/kubernetes-sigs/multicluster-runtimeというディレクトリが自動で作成され、その中にgit cloneしてくれます。

おまけにcdまでしてくれるので、すぐに作業を開始できます!

まさに痒いところに手が届く感じです。

設定方法

リポジトリをクローンする場所は、グローバルのgit configでghq.rootを設定するだけです。

僕は~/codesにリポジトリをクローンするようにしているので、以下のように設定しました:

git config --global ghq.root '~/codes'

階層構造での移動を快適にする工夫

ディレクトリが階層構造になることで一つ困ることがあります。それは移動のしにくさです。フラットにリポジトリを並べるのと比べて、パッとcdできないのが不便に感じることがあります。

そんな時は、以下のようなシェル関数を追加しておくと便利です:

fish
function gcd
  cd (ghq list -p | fzf)
end

この関数により、ghqで管理しているリポジトリ一覧をfzfの曖昧検索で選択し、一発でジャンプできるようになります。

さらなる効率化のためのエイリアス設定

毎回ghq get --lookを打つのが手間なのと、--lookオプションは忘れがちなので、エイリアスに設定しておくことをおすすめします:

fish
abbr -a ghc ghq get --look

これでghc <URL>でリポジトリをクローンして、すぐにcdできるようになります🙌

まとめ

ghqを使うことで、以下のメリットが得られました:

  • GitHubのURL階層に沿った直感的なディレクトリ構造
  • 一発でクローン+移動ができる効率性
  • fzf連携による快適なリポジトリ間移動

ローカルリポジトリの整理に悩んでいる方は、ぜひghqを試してみてください。きっと開発環境がより快適になるはずです。

最後までお読みくださりありがとうございました。

41
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?