git-sync
brew install git-sync
v4.7.0
Apache-2.0
Clones a git repository and keeps it synchronized with the upstream
29
30-day installs · #5852
47
90-day · #7533
218
365-day · #7140
2.7k
★ GitHub stars · updated 2mo ago
Runtime dependencies
Build dependencies
Links
- https://github.com/kubernetes/git-sync
- GitHub: kubernetes/git-sync
- Brew formula source: Formula/g/git-sync.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"go"
],
"categories": [],
"caveats": null,
"conflicts_with": [
"git-extras"
],
"dependencies": [
"coreutils"
],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Clones a git repository and keeps it synchronized with the upstream",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:06+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "git-sync",
"github_default_branch": "master",
"github_last_commit_at": "2026-06-12T22:36:53Z",
"github_readme_excerpt": "# NOTE: THIS DOCUMENT COVERS GIT-SYNC v4\n\nThis is the \"master\" branch, which is under development. If you are looking \nfor docs on older (v3) versions of git-sync, you probably want to use the\n[v3.x branch](https://github.com/kubernetes/git-sync/tree/release-3.x).\n\n# git-sync\n\ngit-sync is a simple command that pulls a git repository into a local\ndirectory, waits for a while, then repeats. As the remote repository changes,\nthose changes will be synced locally. It is a perfect \"sidecar\" container in\nKubernetes - it can pull files down from a repository so that an application\ncan consume them.\n\ngit-sync can pull one time, or on a regular interval. It can pull from the\nHEAD of a branch, from a git tag, or from a specific git hash. It will only\nre-pull if the referenced target has changed in the upstream repository (e.g. a\nnew commit on a branch). It \"publishes\" each sync through a worktree and a\nnamed symlink. This ensures an atomic update - consumers will not see a\npartially constructed view of the local repository.\n\ngit-sync can pull over HTTP(S) (with authentication or not) or SSH.\n\ngit-sync can also be configured to make a webhook call or exec a command upon\nsuccessful git repo synchronization. The call is made after the symlink is\nupdated.\n\n## What it produces and why - the contract\n\ngit-sync has two required flags: `--repo`, which specifies which remote git\nrepo to sync, and `--root` which specifies a working directory for git-sync,\nwhich presents an \"API\" of sorts.\n\nThe `--root` directory is _not_ the synced data.\n\nInside the `--root` directory git-sync stores the synced git state and other\nthings. That directory may or may not respond to git commands - it\u0027s an\nimplementation detail.\n\nOne of the things in that directory is a symlink (see the `--link` flag) to the\nmost recently synced data. This is how the data is expected to be consumed,\nand is considered to be the \"contract\" between git-sync and consumers. The\nexact target of that symlink is an impleme",
"github_repo": "kubernetes/git-sync",
"github_stars": 2710,
"github_topics": [],
"homepage": "https://github.com/kubernetes/git-sync",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 29,
"installs_365d": 218,
"installs_90d": 47,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "Apache-2.0",
"llm_generated_at": null,
"llm_model": null,
"name": "git-sync",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 5852,
"rank_365d": 7140,
"rank_90d": 7533,
"raw_hash": "9d1abc9be3e8d4e1",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/g/git-sync.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "4.7.0",
"versioned_formulae": [],
"why_use_this": null
}