{"id":24756328,"url":"https://github.com/dalance/git-skel","last_synced_at":"2025-10-11T02:31:32.210Z","repository":{"id":34540025,"uuid":"179668518","full_name":"dalance/git-skel","owner":"dalance","description":"A git subcommand to apply skeleton repository continuously","archived":false,"fork":false,"pushed_at":"2025-01-23T20:05:50.000Z","size":508,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T21:19:20.687Z","etag":null,"topics":["git","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dalance.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"dalance"}},"created_at":"2019-04-05T11:21:25.000Z","updated_at":"2025-01-23T20:05:47.000Z","dependencies_parsed_at":"2024-01-08T21:49:08.482Z","dependency_job_id":"0c47098a-ca7d-4489-b343-599e73519f18","html_url":"https://github.com/dalance/git-skel","commit_stats":{"total_commits":189,"total_committers":3,"mean_commits":63.0,"dds":0.5079365079365079,"last_synced_commit":"f6a94f8a6cdcc43af228bcabd1c019726b82c380"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalance%2Fgit-skel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalance%2Fgit-skel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalance%2Fgit-skel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalance%2Fgit-skel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dalance","download_url":"https://codeload.github.com/dalance/git-skel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236026002,"owners_count":19083300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","rust"],"created_at":"2025-01-28T13:50:51.495Z","updated_at":"2025-10-11T02:31:31.815Z","avatar_url":"https://github.com/dalance.png","language":"Rust","funding_links":["https://github.com/sponsors/dalance"],"categories":[],"sub_categories":[],"readme":"# git-skel\n\n**git-skel** is a git subcommand to apply skeleton repository continuously.\n\n[![Actions Status](https://github.com/dalance/git-skel/workflows/Regression/badge.svg)](https://github.com/dalance/git-skel/actions)\n[![Crates.io](https://img.shields.io/crates/v/git-skel.svg)](https://crates.io/crates/git-skel)\n\n## Description\n\nSkeleton repository is a project templete including trivial directories, scripts, configs, and so on.\n(You can find many skeleton repositories by searching `skeleton` in GitHub.)\n\nUsually skeleton repository is used at the initial phase of project by cloning the repository.\nIf the skeleton repository is updated after the project is grown, the way to apply the update is carefully file copy or `git cherry-pick`.\nBoth of them are not easy.\n\n**git-skel** provides the easy way to apply the update.\n\n## Platform\n\nLinux/macOS/Windows\n\n## Installation\n\n### Download binary\n\nDownload from [release page](https://github.com/dalance/git-skel/releases/latest), and extract to the directory in PATH.\n\n### Cargo\n\nYou can install by [cargo](https://crates.io).\n\n```\ncargo install git-skel\n```\n\n## Demo\n\n[![asciicast](https://asciinema.org/a/241332.svg)](https://asciinema.org/a/241332?autoplay=1\u0026speed=1.5)\n\n## Usage\n\n### Init\n\nInitially you can setup to apply a skeleton repository in any git repository like below:\n\n```\n$ git skel init [URL]\n```\n\n`git skel init` command clones `[URL]` to a temporary directory and copies all files to the current repository.\nThe command puts `.gitskel.toml` to the current repository to record the path and revision of the skeleton repository.\nYou can check the added files by `git status` and commit if there is no problem.\n\n### Update\n\nIf the skeleton repository is updated, you can apply the update like below:\n\n```\n$ git skel update\n```\n\n`git skel update` command clones the skeleton repository saved in `.gitskel.toml` to a temporary directory and copies all files to the current repository.\nIf there are deleted files between the latest revision and the saved revision in `.gitskel.toml`, the files will be deleted.\nIf the files which will be changed by the command are modified and not committed, the command will be aborted.\n\n```\n$ git skel update\nDetect changes\n  !copy  : aaa\nError: aborted bacause some files are not committed ( marked by ! )\n       If you will ignore it, use `--force` option.\n```\n\nYou can ignore this check by `git skel update --force`.\n\n### Branch / Tag\n\n`git skel branch` command change the branch to track and update.\n\n```\n$ git skel branch [BRANCK NAME]\n```\n\n`git skel tag` command change the tag to track and update.\n\n```\n$ git skel tag [TAG NAME]\n```\n\n`--force` option can be used as the same as update.\n\n### Clean\n\n`git skel clean` command delete `.gitskel.toml` and all files which copied from the skeleton repository.\n\n```\n$ git skel clean\n```\n\n`--force` option can be used as the same as update.\n\n### `.gitskelignore`\n\nYou can put `.gitskelignore` to repository root.\nThis has the same syntax as `.gitignore`.\nAny file matched with `.gitskelignore` is ignored by the command.\n\n`.gitskelignore` can be used at both skeleton repository and project repository.\nFor example, `README.md` should be added to `.gitskelignore` of a skeleton repository because `README.md` shoud not be copied to a project repository.\nIf there are the files modified by project-specific reason, the files should be added to `.gitskelignore` of a project repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalance%2Fgit-skel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdalance%2Fgit-skel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalance%2Fgit-skel/lists"}