はじめに
エンジニアにいつかなろうとしている情弱WANNABEがチャレンジしました。
きっかけ
めちゃめちゃ親切な友人から下記の記事をおすすめしてもらいました。
https://zenn.dev/obregonia1/articles/e82868e8f66793
pecoとかghqとかわからんかったので、最初は入れる気がなかったのですが、勉強がてらいれることにしました。
いろんなサイトをみまして、インストールが複雑な文字列ばっかりで難しかった。
(注意)なので、とりあえず動かすために最低限必要な要素をまとめてました。
参考にしたサイト
go:https://qiita.com/m-tmatma/items/3477e2a107c20a33e6f1
peco:https://github.com/peco/peco
ghq:https://github.com/x-motemen/ghq
実施前の環境
golang入れていない。もちろんpecoとghqも入れていない。
gitは入れていました。
実施前の課題
git cloneしてローカルリポジトリ作るのがめんどくさい作業だと感じていました。(git使うの難しい、、、)
実施したこと
基本的には公式ドキュメント通りに作業しました。
インストール作業(1/3)
sudo apt update
sudo apt install -y golang-go
go install github.com/x-motemen/ghq@latest
sudo apt install peco
パス通す作業(2/3)
bashrcにgolangへのPATHを通すらしい。
bashrcとはシェル(bash)を読み込んだときに読まれる設定ファイルらしい。(https://wa3.i-3-i.info/word13649.html)
nano ~/.bashrc
# golang configure
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
sourceはシェル(bach)上に設定ファイルを読み込むらしい。
source $HOME/.bashrc
確認作業(3/3)
コマンド
go version
peco version
ghq --version
結果
$ go version
go version go1.18.1 linux/amd64
$ peco --version
peco version v0.5.10 (built with go1.17)
$ ghq --version
ghq version 1.4.2 (rev:HEAD)
あれっ、、、pecoでbuilt with go1.17ってなってるなぁ。
よくわからないから無視しよう(ちゃんと調べます。)
[2023/9/13 追記]
親友の@RIckyBan氏から速攻で回答きました。マジで天才。頑張ります。
これは不思議なことではなくて、aptではビルド済みのバイナリを配信してるからじゃないかな
仮にソースからビルドする場合であればローカルに存在するgoのランタイムを使うはずだけど、今回ズレてるのは全然あり得る話
ビルド済みのバイナリを配信ってことなので、ローカルに入ってるGoのバージョンとは特に関係なく動くみたいですね。セキュリティ修正があったときにビルドしたバージョンは重要みたいですね〜。
うまく入っていたら以下のようなバージョンになると思います。(2023年9月12日現在)
ライブラリ | version |
---|---|
go | go1.18.1 |
peco | v0.5.10 |
ghq | 1.4.2 |
実施後
以下のコマンドでいい感じにクローンしてくれる。
ghq get git@github.com:(ディレクトリ部分)
pecoは単体だけだとうまく使えないので下記のようにaliasでコマンドを登録しておくといい感じにクローンしてきたリポジトリを変更できるようになる。
nano ~/.bash_aliases
alias gitcd='cd $(ghq root)/$(ghq list | peco)'
source $HOME/.bash_aliases
これでgitcd
をterminal上で打てばいい感じにディレクトリ移動できるようになる。
結果
いい感じになった!
みなさんも試してみよう〜
友人の@RIckyBan氏ありがとう。
まだgit使いこなせていないからだが、レポジトリのbranch切り替えも難しく、どうにかかんたんにしたいです。(勉強せよっ)