qlqz-git-sync-cli
v1.0.3
Published
A CLI tool to sync specified directories from a git repository to local
Downloads
369
Readme
qlqz-git-sync-cli
A CLI tool to sync specified directories and files from a git repository to local.
Features
- Sync specified directories from a git repository
- Sync specified files from a git repository
- Support configuration file for directory and file list
- Skip existing files (keep local files unchanged)
- Easy to use with npx
Installation
Global Installation
npm install -g qlqz-git-sync-cliUse with npx
npx qlqz-git-sync-cli sync --repo <git-repo-url> --dirs <directories>Usage
Basic Usage
Sync specified directories from a git repository:
qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --dirs src,publicSync specified files from a git repository:
qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --files package.json,README.md,.gitignoreSync both directories and files:
qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --dirs src,public --files package.json,README.mdSync from a specific branch:
qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --branch develop --dirs src,publicSync from a local directory:
qlqz-git-sync-cli sync --path D:\path\to\local\directory --dirs src,publicUse Configuration File
New Configuration Structure (Recommended)
Create a configuration file (e.g., sync-config.json):
{
"branch": "main",
"files": {
"sync": [
"src/vendors/",
"config.json"
],
"create": [
"public/config/",
"src/assets/",
"package.json",
"README.md"
]
}
}- sync: Items to sync with replacement (always replace files if changed)
- create: Items to create only if they don't exist (skip existing files)
- Directory identification: Items ending with
/are treated as directories - File identification: Items not ending with
/are treated as files
Legacy Configuration Structure (Backward Compatible)
{
"dirs": ["src", "public", "config"],
"files": ["package.json", "README.md", ".gitignore"]
}Then run:
qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --config sync-config.jsonCommand Options
Usage: qlqz-git-sync-cli sync [options]
Sync directories and files from git repository or local directory
Options:
-r, --repo <url> Git repository URL
-p, --path <path> Local directory path
-c, --config <path> Configuration file path
-d, --dirs <dirs> Directories to sync (comma-separated)
-f, --files <files> Files to sync (comma-separated)
-b, --branch <branch> Git branch to sync from
-h, --help display help for commandHow It Works
- Creates a temporary directory
- Clones the specified git repository into the temporary directory
- Copies the specified directories from the temporary repository to the current directory
- Skips existing files (keeps local files unchanged)
- Cleans up the temporary directory
Example
Sync the src and public directories from a git repository:
npx qlqz-git-sync-cli sync --repo https://github.com/example/repo.git --dirs src,publicThis will:
- Clone the repository to a temporary directory
- Copy the
srcdirectory and its contents to the current directory - Copy the
publicdirectory and its contents to the current directory - Skip any files that already exist in the current directory
License
ISC
