214
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

GitHubのTemplate Repository機能のすゝめ

最近発見したGitHubのTemplate Repository機能の紹介です。

リンターやらテストライブラリの設定等は、ほぼどの環境でも行いますが毎回設定するのは地味に面倒ですよね。
GitHubのTemplate Repository機能を使えばその環境構築が不要で、本質的な開発をすぐに始められるようになります。

GitHubのTemplate Repositoryとは?

あるリポジトリのコードベースをそっくりそのまま新規のリポジトリ作成で利用できる機能です。
「え、それってforkと違うの?」っと思った方もいるかもですが、以下の点でforkとは異なります。

  • 1つのリポジトリから複数作成できる(forkだと、同名のリポジトリとなるので1人のユーザー内で複数作成は不可)
  • 元となったリポジトリのコミット履歴を継承せず、クリーンな状態でスタートできる

使い方

以下実際にTemplate Repositoryを作るところから説明します。

1. テンプレートとなるリポジトリの作成

まず、汎用性のある環境を整備したボイラープレート的なリポジトリを作ります。
自分の場合はこちらのリポジトリがそれに当たります。

スクリーンショット 2020-07-13 5.55.32.png

整備している環境は以下の通りです。

  • TypeScriptのビルド環境(TypeScript, ts-node)
  • リンター、コードフォーマッター(ESLint, Prettier)
  • テスト環境(Jest)
  • 各npmスクリプト(test, lint, build)

Node.js + TypeScriptでちょっとしたCLIツール等を作るときに使えます。

2. Template Repositoryとして登録

GitHub上でリポジトリにアクセスして、メニューのSettingsからTemplate Repositoryのチェックボックスをチェックしてください。
これだけでTemplate Repositoryとして登録されます。

テンプレート機能

3. テンプレートの利用

リポジトリのトップページを見ると、新しくUse this templateというボタンが追加されているはずです。

スクリーンショット 2020-07        -12 17.50.59.png

このボタンを押すと、いつものリポジトリ作成画面に遷移します。あとは通常通りリポジトリ名、概要を入力し作成するだけです。

スクリーンショット 2020-07-12 20.15.41.png

Initial commitとして元リポジトリのコードベースがコミットされたリポジトリが作成されます。
また、forkのようにリポジトリ名下部にgenerated from ...としてテンプレートとなるリポジトリのリンクが記載されます。

スクリーンショット 2020-07-13 6.07.19.png

これでリンター、テスト環境が整備された上で直ぐ開発をスタートできます!便利!🎉

※ テンプレートへの依存はあくまで、作成時にInitial commitでテンプレートの内容がコミットされるだけです。Template Repository側のリポジトリをその後変更しても、そこから作成したリポジトリには反映されないので注意です。

おすすめのTemplate Repository

テンプレートとして公開されているおすすめのリポジトリの紹介です。

node-typescript-boilerplate

Node.js + TypeScriptでプロジェクトをスタートするときに利用するリンターやら、テストパッケージ等が整備されています。
スクリーンショット 2020-07-13 6.22.09.png

electron-react-boilerplate

ElectronでReactを利用する場合に必要なもののほぼ全てが入っています。

スクリーンショット 2020-07-13 6.35.17.png

laravel-voilerplate

Authorizationや、Bootstrap4ベースのフロントエンド、その他諸々が整備されています。

スクリーンショット 2020-07-13 6.41.41.png

終わりに

以上「GitHubのTemplate Repository機能のすゝめ」でした。
なかなか便利な機能なので、今後も自分なりのボイラープレートを作って利用していきたいです。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
214
Help us understand the problem. What are the problem?