新しいプロジェクトを簡単に作成するためのGitHubテンプレートの作成と管理方法
新しいプロジェクトを作成するときは、しばしばゼロから始めるわけではありません。
新しいプロジェクトを作成する際、多くの場合、ゼロから始めるわけではありません。コードの構造や雛形、その他の既存の機能を再利用することで、繰り返し行う設定にかかる開発時間を数時間節約できます。この機能はGitHubに組み込まれており、テンプレートを簡単に使い、維持することができます。
リポジトリテンプレート: GitHubの最高の隠れた機能
GitHubのテンプレートは、新しいプロジェクトを始めるのに非常に役立ちます。特に、同じ言語、フレームワーク、プロジェクト構造を使用して、新しいリポジトリを常に作成している場合には尚更です。
例えば、Minecraftのモッドや既存のソフトウェアのプラグインを作成する人は、毎回同じJavaとGradleのプロジェクトを使用し、何十ものプラグインを作成するかもしれません。ASP.NETのWeb APIを頻繁に使用する人は、バックエンドが必要なプロジェクトごとに新しいプロジェクトを作成するかもしれません。
同じテンプレートを使用することで、開発が大幅に効率化されるだけでなく、プロジェクトで共有コードを保存するためにも使用できます。例えば、コードベースに一般的に再利用されるコードが含まれている小さな「CodeUtilities」クラスがあるとします。このファイルの決定版としてテンプレートに保存することは、頻繁に再利用される場合には理にかなっています。
テンプレートはGitHub上で公開されることもありますが、意外にもそれほど一般的には使われていません。もし「このテンプレートを使用する」ボタンがないリポジトリに出会ったことがなければ、存在すら知らないかもしれません。このボタンを使うことで、新しいリポジトリを作成することができます。
テンプレートを使用するのは簡単です---リポジトリに新しい名前を付けて、公開または非公開を選択するだけです。ただし、「すべてのブランチを含める」というオプションもあります。これは、メインブランチだけでなく、すべてのものをコピーします。これはデフォルトでオフになっているので、必要な場合はオンにするようにしてください。
新しいリポジトリを作成するときには、あなたがスターを付けた(または所有している)すべてのテンプレートにアクセスすることもできます:
もちろん、リポジトリを手動でクローンし、不要なコードを削除し、新しいプロジェクトのために新しいGitHubリポジトリを作成し、Gitリモートを新しいリポジトリに更新することもできます。しかし、GitHubテンプレートはそれらすべてをボタン一つで自動化してくれ、非常に簡単に作成できます。
リポジトリテンプレートの作成
既存のリポジトリからテンプレートを作成するのは非常に簡単です。最初に作成するときはそのオプションは利用できませんが、必要に応じてオンとオフを切り替えることができます。
リポジトリの設定に移動し、「一般」タブの下で「テンプレートリポジトリ」のチェックボックスをクリックします:
それで終わりです。あなたのリポジトリは現在テンプレートモードになっています。緑の「コード」ボタンが「このテンプレートを使う」ボタンに変わるのが見えるでしょう。ただし、手動でクローンを作成したい場合は、コードボタンもまだあります。
もちろん、既存の多くの機能を持つリポジトリからこれを作成している場合は、新しい「テンプレートコピー」を作成することをお勧めします。そうすれば、不要なビジネスロジックをすべて削除し、必要最低限のコードベースだけを保持できます。
テンプレートの更新
テンプレートを使用してリポジトリを作成すると、そのリポジトリはテンプレートから切り離され、新しいリポジトリに接続されます。しかし、テンプレートのURLを再度セカンダリリモートとして追加し、複数のリモートリポジトリでプロジェクトを使用することにはいくつかの利点があります。
テンプレートに変更をプッシュしても、そのテンプレートのすべてのクローンに反映されるわけではありません。ただし、テンプレートをリモートとして追加し、テンプレートリモートをプルすることで、クローンを手動で更新できます。
git remote add template [template_url]次に、テンプレートからリモートの変更を取得するために、すべての変更を取得します:
git fetch --all次に、git mergeを--allow-unrelated-historiesフラグと共に使用して、テンプレートのメインブランチから変更を取り込むことができます:
git merge template/main --allow-unrelated-historiesただし、クローンしたプロジェクトがテンプレートから大きく逸脱すると、マージの競合が発生する可能性があることを忘れないでください。同様に、上流の変更をマージすることでも問題が発生することがあります。これらを手動で解決する必要があります。





