LoginSignup
2
2

More than 1 year has passed since last update.

コマンド一つでディレクトリに紐づいているリモートリポジトリをブラウザで開く

Last updated at Posted at 2021-11-05

はじめに

普段頭の体操がてらterminalの使用感Upのためにあれこれ弄り回しているので、過去に作成したものをここで晒してみます🐕

特に困ってはいないけど、ググってツールをインストールしたりするほどでもないので、個人的な需要を満たすためにザックリと作成してみました。

コード内容

下記を.bashrc.zshrcなどaliasを書いているファイルに貼り付ければ $ githubでブラウザ上にカレントディレクトリのリモートリポジトリが表示されます。

.zshrcとか.bashrc
function github() {
  git="https://github.com/"
  hub=$(git remote -v | head -n 1 | cut -f 2 -d ":" | rev | cut -c 8- | rev)
  echo "opening repository ..."
  echo $hub
  open $git$hub
}

詳細

泥臭い書き方をしていますが、以下の通りです。

$ git remote -v

origin  git@github.com:user_name/repository_name.git (fetch)
origin  git@github.com:user_name/repository_name.git (push)

上記の$ git remote -vの出力を使用していきます。

  • gitにGitHubのドメインをである"https://github.com/"を用意。
hub=$(git remote -v | head -n 1 | cut -f 2 -d ":" | rev | cut -c 8- | rev)

続いてhubの中身ですが、$ git remote -vの出力内容からorigin git@github.com:user_name/repository_name.git (fetch)を取り出し、
githubのドメインの後に連結するために下記の手順で加工しています。

  • head - 1:出力結果の1行目を指定

  • cut -f 2 -d ":":cutコマンドの-f(--fields)オプションで必要な項目が二番目であることを指定し、さらに-d(--delimiter)のオプションによって区切り文字が":"であることを指定。

  • 上記headとcutを使用して得た結果をreverseして先頭から8文字削除することで、(fetch)と前にあるスペースを削除し再度reverseする。最終的にuser_name/repository_name.gitの形にしてhubに格納。

最後に$git$hubを連結してリポジトリのurlにし、openコマンドに渡してあげればデフォルトブラウザでgithubのリポジトリが表示されます。

まとめ

こんな感じで動いてくれると思います。
reverseしているとこなどかなり改善できる内容だと思いますがとりあえず使えればいいやで書いたものです🐕

qiita1

2
2
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
2
2