{"id":17349260,"url":"https://github.com/co2-git/git-san","last_synced_at":"2025-10-12T07:37:00.808Z","repository":{"id":26340387,"uuid":"29789169","full_name":"co2-git/git-san","owner":"co2-git","description":"git dependencies manager","archived":false,"fork":false,"pushed_at":"2015-01-25T08:04:08.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-12T07:37:00.378Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/co2-git.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-24T19:46:17.000Z","updated_at":"2015-01-25T08:04:09.000Z","dependencies_parsed_at":"2022-08-28T00:35:23.718Z","dependency_job_id":null,"html_url":"https://github.com/co2-git/git-san","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/co2-git/git-san","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/co2-git%2Fgit-san","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/co2-git%2Fgit-san/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/co2-git%2Fgit-san/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/co2-git%2Fgit-san/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/co2-git","download_url":"https://codeload.github.com/co2-git/git-san/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/co2-git%2Fgit-san/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010667,"owners_count":26084784,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-15T16:55:09.960Z","updated_at":"2025-10-12T07:37:00.763Z","avatar_url":"https://github.com/co2-git.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"git-san\n=======\n\nA git repositories manager.\n\n# Abstract\n\n`git-san` is a per-project git repositories dependencies manager CLI utlity. With it, you can install, update and uninstall git repositories. It keeps a small database of the installed dependencies in a file so you can also install from file.\n\n# Install git-san\n\n```bash\nnpm install -g git-san\n```\n\n# Install\n\nMove to your project directory and enter the install command followed by the `repository-address`. It will create a directory called `git_components` and store repositories there. It will also create a file `git-san.json` as a small database to keep track of installed repositories.\n\n## Usage\n\n```bash\ngit-san install \u003crepository-address\u003e\n```\n\nWhere `\u003crepository-address\u003e` can be:\n\n1. **HTTP(s) URL**, `https://github.com/co2-git/git-san`\n2. **SSH address**, `git@github.com:co2-git/git-san`\n3. **Provider address** (from supported list of providers), `github:co2-git/git-san`\n4. **Vendor Address** (if repository hosted in Github), `co2-git/git-san`\n\n## Example with full address\n\n```bash\ngit-san install https://github.com/co2-git/git-san\n```\n\n## Example with SSH\n\nYou can use both HTTP(S) or SSH.\n\n```bash\ngit-san install git@github.com:co2-git/git-san\n```\n\n## Provider address\n\nThis is the list of the supported providers:\n\n1. **github** `git-san install github:\u003cvendor\u003e/\u003crepo\u003e`\n2. **bitbucket** `git-san install bitbucket:\u003cvendor\u003e/\u003crepo\u003e`\n3. **gitlab** `git-san install gitlab:\u003cvendor\u003e/\u003crepo\u003e`\n\n## Github shortcut\n\nIf you want to install a repository from Github, you can use this short syntax:\n\n```bash\ngit-san install co2-git/git-san\n```\n\n## Auto-install\n\nTo install dependencies from the database file, just enter:\n\n```bash\ngit-san install\n```\n\n# Branch, commit and tag\n\n## Tag and semantic versioning\n\n`git-san` will use semantic versioning if possible. If given a repository URL, it will check for tags and install the latest tag. It then uses semantic versioning to update the repository.\n\nThis will install `git-san` latest tag version (let's say 0.0.1):\n\n```bash\ngit-san install co2-git/git-san\n```\n\nTo this command, `git-san` will install the repo and answer with this JSON:\n\n```json\n{\n\t\"co2-git/git-san\": {\n\t\t\"provider\": \"github\",\n\t\t\"vendor\": \"co2-git\",\n\t\t\"repo\": \"git-san\",\n\t\t\"tag\": \"0.0.1\",\n\t\t\"version\": \"~0.0.1\"\n\t}\n}\n```\n\nNote the `tag` attribute and the `version` attribute. The former contains the tag the repository is currently at, and the latter the semantic version declaration for updating.\n\n### Install from specific tag\n\n```bash\ngit-san install --tag=0.0.2 co2-git/git-san\n```\n\n### Semantic versioning\n\nYou can use semantic versioning:\n\n```bash\ngit-san install --tag=~0.0.2 co2-git/git-san\n```\n\n### No semantic versioning\n\nNot every repository use semantic versioning. In this case, you can still specify a tag at install time:\n\n```bash\ngit-san install --tag=alpha co2-git/git-san\n```\n\nIn this case though, you won't be able to automatically update the repository:\n\n```bash\ngit-san update co2-git/git-san\n```\n\nwill not do nothing - you have to pass it a new tag name:\n\n```bash\ngit-san update --tag=beta co2-git/git-san\n```\n\n## Commit\n\nIf no tags are found, `git-san` will revert to commit strategy. In this case, it will install the repository from the latest commit from master and save that commit number. This commit number will be used to check for new versions. Any new commit number will be interpreted as a new version.\n\nYou can also skip tagging and force using commit strategy such as:\n\n```bash\ngit-san install --commit co2-git/git-san\n```\n\nAfter installing the repository, `git-san` will answer with this JSON:\n\n```json\n{\n\t\"co2-git/git-san\": {\n\t\t\"provider\": \"github\",\n\t\t\"vendor\": \"co2-git\",\n\t\t\"repo\": \"git-san\",\n\t\t\"commit\": \"373e6e2edc594ee632790778cbf94505f1d584bc\",\n\t\t\"branch\": \"master\"\n\t}\n}\n```\n\n## Branch\n\nWith the commit strategy, master is the branch by default to install from. You can specify another branch like this:\n\n```bash\ngit-san install --commit --branch=dev co2-git/git-san\n```\n\nYou will then get this JSON:\n\n```json\n{\n\t\"co2-git/git-san\": {\n\t\t\"provider\": \"github\",\n\t\t\"vendor\": \"co2-git\",\n\t\t\"repo\": \"git-san\",\n\t\t\"commit\": \"373e6e2edc594ee632790778cbf94505f1d584bc\",\n\t\t\"branch\": \"dev\"\n\t}\n}\n```\n\n# Update\n\nView strategies above to see how repositories get updated.\n\n```bash\ngit-san update co2-git/git-san\n```\n\n# ls (List)\n\nInvoke the `ls` command to see a list of installed repositories.\n\n```bash\ngit-san ls\n```\n\n# Uninstall\n\n```bash\ngit-san uninstall co2-git/git-san\n```\n\n# Change\n\n```bash\n# switch to commit strategy\ngit-san change --commit co2-git/git-san\n\n# switch to tag strategy\ngit-san change --tag co2-git/git-san\n\n# switch to another branch\ngit-san change --branch=dev co2-git/git-san\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fco2-git%2Fgit-san","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fco2-git%2Fgit-san","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fco2-git%2Fgit-san/lists"}