Professional repository cloning tool with intelligent template processing, glob pattern support, and automated project generation capabilities.
Lightning-fast repository processing with optimized algorithms
Advanced template options with glob pattern support
Built for professional development environments
Discover the advanced capabilities that make Git Cloner the ultimate template processing tool
Advanced pattern matching with gitignore-style syntax including **, *, ?, and [] for precise file targeting.
Intelligent line removal, JSON/XML node manipulation, and content replacement with regex support.
Support for GitHub, Azure DevOps, Bitbucket, and other Git hosting platforms with unified API.
Comprehensive API, extensible architecture, and detailed documentation for custom integrations.
High-performance processing with efficient memory usage and optimized algorithms for large repositories.
Experience the intuitive interface and powerful workflow of Git Cloner through these live application screenshots
Start by selecting your template and configuring project settings. The intuitive two-step wizard guides you through template selection and component configuration.
Review your configuration before execution. The summary screen shows all selected options, target paths, and planned operations for complete transparency.
Monitor the cloning process with detailed logs and progress indicators. See exactly what's happening during template processing and project generation.
Download now and streamline your development workflow with our powerful template engine
Get Started TodaySee how easy it is to get started with Git Cloner
# Clone a template repository
git-cloner
{
"Tags":[
"tago",
"pre-release"
],
"DisplayName": "Tago Template",
"Description": "",
"Constants": {
"PROJ_TYPE": "Tg-MicroService",
"ORIG_TEMPLATE_NAME": "web-api-template"
},
"FolderPath": "%userprofile%/tago/{GIT_PROJECT_NAME}/{PROJ_TYPE}",
"RepoNameFormat": "Repo-{PROJECT_NAME}",
"ProjectNameFormat": "Repo.{PROJECT_NAME}",
"Replaces": [
{
"From": "web-api-template",
"To": "{SLN_PROJECT_NAME}"
},
{
"From": "web_api_template",
"To": "{SLN_PROJECT_NAME}"
},
{
"From": "@@AUTO_GENERATED",
"To": "{SLN_PROJECT_NAME}"
}
],
"Options": [
{
"Name": "WeatherForecast2",
"DisplayName": "Do you want to add WeatherForecast2? Y/N",
"UiDisplayName": "WeatherForecast2",
"Description": "WeatherForecast2 controller will add alternate forcasts",
"Actions": {
"No": {
"Remove": {
"Directories": [
],
"Files": [
"/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/Controllers/WeatherForecast2Controller.cs",
"/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/Controllers/WeatherForecastController.cs"
],
"Lines": [
{
"FilePath": "/*/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}.csproj",
//"FilePaths": ["src/**/*.js", "**/*.spec.js"],
"Contains": ""
}
],
"JsonNodes":[
{
"FilePath": "/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/appsettings.json",
"NodePath": "Logging:LogLevel:default"
}
]
}
},
"Yes": {
"Remove": {
"Files": [
"/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/Controllers/WeatherForecast2Controller.cs"
]
}
}
}
},
{
"Name": "RunFile",
"UiDisplayName": "Run a File",
"DisplayName": "Do you want run a file? Y/N",
"Dependencies": [
"WeatherForecast2"
],
"Actions": {
"No": {
"Remove": {
"Directories": [
"/utils"
],
"Lines": [
{
}
]
}
},
"Yes": {
"Remove": {
"Directories": [
"/utils"
]
},
"FileExecute": [
{
"Path": "/utils/Console.exe",
"Parameters": {
"param1": "param value",
"param2": "{OUTPUT_DIR}/src/123",
}
}
]
}
}
},
{
"Name": "Abort?",
"IsTemplateOption": false,
"Condition": {
"AnySelected": []
},
"DisplayName": "No option selected, Do you want to abort? Y/N",
"Actions": {
"Yes": {
"Abort": true
}
}
},
{
"Name": "Post",
"Background": true,
"Condition": {
"AnySelected": []
},
"DisplayName": "clear",
"Actions": {
"Yes": {
"Remove": {
"Directories": [
],
"Files": [
"/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/Controllers/WeatherForecastController.cs",
"/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/WeatherForecast.cs"
],
"Lines": [
{
"FilePath": "/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}.csproj",
"Contains": ""
}
],
"JsonNodes":[
{
"FilePath": "/src/{ORIG_TEMPLATE_NAME}/{ORIG_TEMPLATE_NAME}/appsettings.json",
"NodePath": "Logging:LogLevel:default"
}
]
}
}
}
}
],
"PostAction": {
"RunFile": [
{
"pattern": "*.sln"
}
]
}
}
**/*.js
Matches all JavaScript files recursively
src/**/test*.cs
Matches test files in src directory and subdirectories
config/[abc]*.json
Matches JSON files starting with a, b, or c in config folder
docs/api?.md
Matches api1.md, api2.md, etc. in docs folder
Empower your team by building powerful, reusable templates for any project. Here’s how to get started in three simple steps.
Start by creating a Git repository that contains every possible file, folder, and feature you might want in a project. This "master" template will be the foundation for all your generated projects.
Place a template-options.json
file in the root of your repository. This file acts as a manifest, defining all the configurable choices a developer can make when using your template.
Inside your JSON file, create options that specify what to remove if a developer opts out of a feature. You can target directories, files, or even specific JSON nodes, giving you precise control over the final project structure.
Download Git Cloner and revolutionize your template processing workflow
Install globally via .NET CLI
Our experts can help you with advanced template design, automation, integration, and custom solutions for your development workflow.
Contact Us: support@tago-solutions.com