Often times, when you’re creating a new project, you’re not doing so from scratch. Reusing code structure, boilerplate, and other existing features can save you hours of development time doing repeated setup. This feature is built right into GitHub, which makes templates easy to use and maintain.
Repository Templates: GitHub’s Best Hidden Feature
GitHub Templates are incredibly useful for starting new projects, especially if you’re constantly creating new repositories using the same language, frameworks, and project structure.
For example, someone making Minecraft mods or plugins for existing software is going to use the same exact Java and Gradle project each time, and might make dozens of plugins. Someone who works with ASP.NET web APIs a lot might make a new project for each project that requires a backend.
Using the same template speeds up development significantly, and can even be used to store shared code for projects. For example, say you have a small “CodeUtilities” class in your codebase that contains some commonly reused code. Storing this on the template as the definitive copy of this file would make sense if it’s often reused.
Templates can even be made public on GitHub, though they’re surprisingly not that commonly used. You might not even know it exists if you haven’t come across a repository that doesn’t have the “Use this template” button that allows you to create a new repo from it:
Using the template is straightforward—you just need to give your repo a new name and select public or private. However, there’s also the option to “include all branches,” which copies over everything, not just the main branch. This is off by default, so make sure to turn it on if you need it.
You can also access all the templates that you have starred (or own) when creating any new repository:
Of course, you can always manually clone a repository, remove code you don’t need, create a new GitHub repository for the new project, and update the Git remote to the new repo. But GitHub Templates automate all of that in a single button click, and they’re really simple to create.
Creating a Repository Template
Creating a template from an existing repository is pretty simple. The option isn’t available when you first make it, but it can be turned on and off at will.
Go to your repository’s settings, and under the “General” tab, click the checkbox for “Template repository”:
That’s it. Your repository is now in template mode. You’ll see the green “Code” button change to the “Use this template” button, though the code button is still there if you want to manually clone it.
Of course, if you’re creating this from an existing repository with a lot of features, you may want to instead create a new “template copy.” Then you can remove all the unwanted business logic and keep only the bare-bones codebase.
Updating Templates
Once you create a repository using a template, it will be disconnected from that template and connected to the new repository. However, there are a few benefits to adding the template URL back as a secondary remote, and using your project with multiple remote repositories.
If you push a change to the template, it isn’t going to make its way to all the clones of that template. You can manually update the clones though by adding the template as a remote, and pulling the template remote.
git remote add template [template_url]
Then, fetch all changes to grab the remote changes from the template:
git fetch –all
Then, you can use git merge with the –allow-unrelated-histories flag to pull in changes from the main branch on the template:
git merge template/main –allow-unrelated-histories
Keep in mind though that if your cloned project diverges too much from the template, you may run into merge conflicts, in the same way that merging upstream changes also can cause issues. You will need to resolve these manually.
>>> Read full article>>>
Copyright for syndicated content belongs to the linked Source : How To Geek – https://www.howtogeek.com/devops/how-to-create-and-manage-github-templates-to-easily-create-new-projects/