Closed18
ghqによるリポジトリ管理
ghqとfzfを用いてGithubリポジトリの管理を行っているが、プライベートと仕事のリポジトリが混在、かつかなりの量になってきていてリポジトリ移動がしづらい
ghqを改めてきちんと調べることで、リポジトリ管理ツールとして使いこなしたい
ghq handbookはコチラ
ghqとはなにか
ghqをpecoやfzf等のインタラクティブフィルタツールと組み合わせれば、手元に数百を超えるリポジトリがあっても、瞬時に目的のリポジトリに移動できます。さらに、OSSをカジュアルに手元にcloneできるようになるため、ソースコードリーディングが捗るという嬉しい副作用もあります。実際作者の手元には1000を超えるリポジトリがあります。
自分はfzfと使ってctrl + Gでリポジトリ移動できるようにしてる、めっちゃ便利
リポジトリを取得
ghq get <target>
ローカルリポジトリを一覧表示
ghq list
リポジトリ取得ディレクトリの設定
ghqは設定にgitconfigを用います。ghq.rootがリポジトリ取得ディレクトリのための項目です。
gitconfigを用いてリポジトリ取得ディレクトリの設定ができるらしい
リポジトリを取得する ghq get
$ ghq get <target>
OPTIONS:
--update, -u Update local repository if cloned already (default: false)
-p Clone with SSH (default: false)
--shallow Do a shallow clone (default: false)
--look, -l Look after get (default: false)
--vcs vcs Specify vcs backend for cloning
--silent, -s clone or update silently (default: false)
--no-recursive prevent recursive fetching (default: false)
--branch branch, -b branch Specify branch name. This flag implies --single-branch on Git
--parallel, -P Import parallelly (default: false)
--bare Do a bare clone (default: false)
--help, -h show help
targetはhttps://{{Host}}/{{Path}}が基本形です。https://は常に省略可能で、ホストがgithub.comの場合、それも省略できます。
$ ghq get https://github.com/x-motemen/ghq
$ ghq get github.com/x-motemen/ghq
$ ghq get x-motemen/ghq
SSHで行いたい場合、以下2つは同義
$ ghq get git@github.com:x-motemen/ghq.git
$ ghq get -p x-motemen/ghq
プロジェクトごとに取得ディレクトリを切り替える(ghq.<base>.root)
これはまさに今悩んでることを解決してくれるやつ
社内で軽く紹介した際に使用したまとめスライド
このスクラップは2024/09/22にクローズされました