📝

ghq+ghで良い感じにGoの環境を整える(windows)

2022/06/14に公開

めちゃくちゃ擦られてる内容だろうけど

最近Goを学び始めました。Goたのしい。Gopherくん可愛い。
最近のGoはgo modeを使うとGOPATHを意識しないでも良いみたいなんですが、
良い感じに一箇所にまとめたくなったので色々調べてみました。

ghqを入れる

インストール

scoop install ghq

まず手始めにghqをインストールします。
これはソースコードの取得と管理を便利にしてくれる 凄いやつです。

ルートパスの設定

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

ghqのルートパスを変更します。
ここにghq get hogeしたファイルがインストールされるようになります。

insteadOfの設定

git config --global url.git@github.com:.insteadOf https://github.com/

デフォルトだと自動でSSH認証になってくれなくて不便なのでurl.<base>.insteadOfの設定をします。
(一応ghq get -p hogeでSSH認証扱いになるみたいだけど確実に-pを付け忘れるよね)
これは全てのgit操作に対してリポジトリのURLを書きかえるやつらしいです。

fzfと連携させる

インストール

scoop install fzf

あいまい検索が出来るfzfを入れます。
これを入れてghqと連携をすることであいまい検索で楽にプロジェクト間を移動出来るようにします。

powershellで呼べるようにする。

function q {
    cd $(ghq list -p | fzf)
}

これを入れると雑にリポジトリを移動出来るようになります。
~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1 に書きこんでください。

unix系列のシェルならgh-ghq-cdを入れると楽そうです。

ghコマンドを入れる

scoop install gh

githubと簡単に連携が取れる、gh コマンドを入れましょう。
これでリポジトリの作成やissueの作成などありとあらゆるGithub上の操作がCLIで行えるようになります。

ユーザー指定でコードを落せるようにする

gh extension install kawarimidoll/gh-q

kawarimidollさんが作成したgh-qを入れます。
リポジトリのURLを控えなくても、gh q {username} でユーザー指定でコードを落す事が出来るようになります。便利~

GOPATHの設定

$user = [System.Environment]::GetFolderPath("UserProfile")
$env:GOPATH = $user + "/project"
$env:GOBIN = $env:GOPATH + '/bin'

GOPATHとGOBINの設定をします。
これでghq getしたファイルと一箇所にまとめる事が出来ます。

終わりに

めんどくさいディレクトリ移動を無くして、エンジョイ、ターミナルライフ!

Discussion