Your Privacy Matters
We use cookies to improve your experience and analyze site usage. You can choose to allow analytics cookies. Learn more.

Git Cloner Advanced Template Engine

Professional repository cloning tool with intelligent template processing, glob pattern support, and automated project generation capabilities.

Fast & Efficient

Lightning-fast repository processing with optimized algorithms

Highly Configurable

Advanced template options with glob pattern support

Enterprise Ready

Built for professional development environments

Powerful Features

Discover the advanced capabilities that make Git Cloner the ultimate template processing tool

Glob Pattern Support

Advanced pattern matching with gitignore-style syntax including **, *, ?, and [] for precise file targeting.

  • • Recursive directory matching
  • • Character class support
  • • Cross-platform compatibility

Smart Content Processing

Intelligent line removal, JSON/XML node manipulation, and content replacement with regex support.

  • • Line-by-line content filtering
  • • JSON/XML node removal
  • • Region-based code removal

Multi-Platform Repos

Support for GitHub, Azure DevOps, Bitbucket, and other Git hosting platforms with unified API.

  • • GitHub integration
  • • Azure DevOps support
  • • Custom Git endpoints
🛠️

Developer Friendly

Comprehensive API, extensible architecture, and detailed documentation for custom integrations.

  • • Rich API surface
  • • Plugin architecture
  • • Extensive unit tests

Performance Optimized

High-performance processing with efficient memory usage and optimized algorithms for large repositories.

  • • Streaming file processing
  • • Memory-efficient operations
  • • Parallel processing support

See Git Cloner in Action

Experience the intuitive interface and powerful workflow of Git Cloner through these live application screenshots

Project Setup Interface
1

Project Setup

Start by selecting your template and configuring project settings. The intuitive two-step wizard guides you through template selection and component configuration.

Template selection with live preview
Component toggles for customization
Real-time validation and feedback
2

Clone Summary

Review your configuration before execution. The summary screen shows all selected options, target paths, and planned operations for complete transparency.

Detailed project configuration review
Selected components and operations
One-click generation process
Clone Summary Interface
Clone Progress Interface
3

Progress & Completion

Monitor the cloning process with detailed logs and progress indicators. See exactly what's happening during template processing and project generation.

Real-time progress tracking
Detailed operation logs
Success confirmation and next steps

Ready to Experience Git Cloner?

Download now and streamline your development workflow with our powerful template engine

Get Started Today

Usage Examples

See how easy it is to get started with Git Cloner

Command Line Usage

Terminal
# Clone a template repository
git-cloner

Template Configuration

template-options.json
{
  "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"
      }
    ]
  }
}

Glob Pattern Examples

**/*.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

GUI Interface

  • Real-time validation and preview
  • Progress tracking and logging
  • Template option wizard

Create Your Own Templates

Empower your team by building powerful, reusable templates for any project. Here’s how to get started in three simple steps.

1

Build a Complete Repository

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.

2

Add `template-options.json`

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.

3

Define Removal Actions

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.

Get Started Today

Download Git Cloner and revolutionize your template processing workflow

Recommended

NuGet Package

Install globally via .NET CLI

dotnet tool install --global Tago.GitCloner.Tool
View on NuGet

System Requirements

Minimum Requirements

  • • .NET 6.0 or later (CLI tool)
  • • .NET Framework 4.7.2+ (Windows GUI)
  • • Windows 10 / macOS 10.15 / Linux
  • • 2 GB RAM
  • • 500 MB disk space
  • • Git installed

Recommended

  • • .NET 8.0
  • • Windows 11 / latest macOS / Ubuntu 22.04
  • • 4 GB RAM
  • • 1 GB disk space
  • • SSD storage

Need Professional Services?

Our experts can help you with advanced template design, automation, integration, and custom solutions for your development workflow.

Contact Us: support@tago-solutions.com