シンプルにghq + pecoで管理しようぜ、みんな
Gitのディレクトリ管理がめちゃくちゃな人たちをみかけたので、もうghqとpecoで管理しようという記事。今更なんだけど、再度きちんと紹介してみる。
ghq とは
x-motemen/ghq はgitコマンド
をオーバーラップして特定のディレクトリに集約してくれるツール。 git clone
したい場合は
ghq get https://github.com/aaa/bbb
のようにすると、
$HOME/.ghq/github.com/aaa/bbb
のように設置してくれる。
ghq get https://gitlab.com/xxx/yyy
をすると、
$HOME/.ghq/gitlab.com/xxx/yyy
のようにしてくれるから、GitHub と GitLab を両方使ってもきちんと分けてくれる。ghqで管理しているリポジトリを一覧表示することもでき、次に紹介するpecoと組み合わせるとショートカットでリポジトリを検索して移動できる。
peco とは
peco/peco スタイリッシュにフィルタリングしてくれるツール。ログやプロセス統計、ファイル検索をしたいときにpecoに渡すといい感じでフィルタリングできるため、活用の余地はたくさんあり。
インストール
macOSの場合
Homebrewで。
brew install ghq peco
vi ~/.zshrc
以下を下に書き込む
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^g' peco-src
でシェルを再読み込み。
exec $SHELL -l
WSL(Ubuntu)の場合
asdf-vm/asdf 経由で入れる。
git clone https://github.com/asdf-vm/asdf ~/.asdf
chmod +x ~/.asdf/asdf.sh
echo ". $HOME/.asdf/asdf.sh" >> ~/.bashrc
exec $SHELL -l
asdf plugin add ghq
asdf install ghq latest
sudo apt install peco
vi ~/.bash_profile
以下を下に書き込む
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
bind -x '"\201": ghq-peco'
bind '"\C-g":"\201\C-m"'
でシェルを再読み込み。
exec $SHELL -l
使い方
GitHubなどに公開鍵を登録して
Host github
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa
などと登録している場合は
ghq get github:ユーザー名/リポジトリ名
で取得して Ctrl + g
を押せばフィルタリングできる。
ディスカッション
コメント一覧
まだ、コメントがありません