筆者は大学でプログラミング演習系の TA (Teaching Assistant) をしたり、ハッカソンの運営をしたりしています。
質問を受ける中で、ホームディレクトリがぐちゃぐちゃでローカル Git リポジトリの場所が一発で探せない方が多くおられることに気づきました。
そこで筆者おすすめのディレクトリ構成を紹介してみようと思います。
ローカルGitリポジトリの置き場所
- ホームディレクトリ (
~/
,$HOME/
) の直下に、リモートリポジトリのURLと対応するようにディレクトリを切ります。- 例えば https://github.com/u-sho/nuxt2.9-template なら、ローカルでは
~/github.com/u-sho/nuxt2.9-template
に置きます。
- 例えば https://github.com/u-sho/nuxt2.9-template なら、ローカルでは
~/
├── gist.github.com/
│ └── u-sho/
│ ├── bash-ascii-logo
│ └── tmux-ascii-logo
│
├── github.com/
│ ├── microsoft/
│ │ └── TypeScript/
│ └── u-sho/
│ ├── dotfiles/
│ ├── ja.vuejs.org/
│ ├── nuxt2.9-template/
│ └── u-sho.github.io/
│
├── gitlab.com/
│ └── u-sho/
⫶ ⫶
以上です。
メリット
- フォークしたのか直接 clone したのかがわかりやすくなっています。
- 上の例でいえば、
~/github.com/microsoft/TypeScript
は直接 clone したリポジトリで、~/github.com/u-sho/ja.vuejs.org
は、自分の GitHub アカウント (github.com/u-sho) にフォークしたリポジトリです。
- 上の例でいえば、
- 迷子になりにくくなっています。
- ホームディレクトリを起点としたフォルダのパスが URL と1対1で対応するため、clone したかどうか、またどこに clone したかを思い出す必要がなくなります。
- 自分としてもわかりやすく、またメンターなど他の方に触ってもらう際もすぐに理解していただきやすいかなと思います。
- リモートリポジトリの URL が
pwd
コマンド一発でわかります。-
git config remote.origin.url
だと SSH のときはワンステップ必要でちょっと悲しくなります。 -
$PS1
にカレントディレクトリを表示させている方は多いと思います。その場合、PS1 からブラウザにコピペして移動できます。
-
デメリット
GitHub だけでなく、Backlog や GitLab、GitBucket など、多数の Git のホスティング先から clone していると、ホームディレクトリが混雑してしまいます。その場合は、ホームディレクトリの代わりに一つディレクトリを作って、その下に配置していくとよいかもしれません。