{"id":24621197,"url":"https://github.com/AkashRajpurohit/git-sync","last_synced_at":"2025-10-06T13:31:47.927Z","repository":{"id":244828306,"uuid":"816269717","full_name":"AkashRajpurohit/git-sync","owner":"AkashRajpurohit","description":"🔄 A simple tool to backup and sync your git repositories","archived":false,"fork":false,"pushed_at":"2025-09-25T05:38:03.000Z","size":1110,"stargazers_count":631,"open_issues_count":10,"forks_count":33,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-03T23:38:12.437Z","etag":null,"topics":["backup-tool","backups","git","git-backup","go","golang"],"latest_commit_sha":null,"homepage":"https://github.com/AkashRajpurohit/git-sync/wiki","language":"Go","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/AkashRajpurohit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"akashrajpurohit","github":"AkashRajpurohit","custom":["https://akashrajpurohit.com/sponsors/?ref=github-sponsor","https://paypal.me/RajpurohitAkash"]}},"created_at":"2024-06-17T11:53:51.000Z","updated_at":"2025-10-03T19:16:43.000Z","dependencies_parsed_at":"2025-01-12T04:19:00.371Z","dependency_job_id":"c7e5bb18-10f5-483c-ab2d-7735b818a0cc","html_url":"https://github.com/AkashRajpurohit/git-sync","commit_stats":{"total_commits":180,"total_committers":6,"mean_commits":30.0,"dds":"0.18888888888888888","last_synced_commit":"118059c5f841dd3cd591041f597b93e58b99f6f8"},"previous_names":["akashrajpurohit/git-sync"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/AkashRajpurohit/git-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkashRajpurohit%2Fgit-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkashRajpurohit%2Fgit-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkashRajpurohit%2Fgit-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkashRajpurohit%2Fgit-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkashRajpurohit","download_url":"https://codeload.github.com/AkashRajpurohit/git-sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkashRajpurohit%2Fgit-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278245655,"owners_count":25955067,"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-03T02:00:06.070Z","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":["backup-tool","backups","git","git-backup","go","golang"],"created_at":"2025-01-25T02:01:47.954Z","updated_at":"2025-10-06T13:31:47.915Z","avatar_url":"https://github.com/AkashRajpurohit.png","language":"Go","funding_links":["https://ko-fi.com/akashrajpurohit","https://github.com/sponsors/AkashRajpurohit","https://akashrajpurohit.com/sponsors/?ref=github-sponsor","https://paypal.me/RajpurohitAkash"],"categories":["Go","命令行工具","golang"],"sub_categories":[],"readme":"\u003cdiv align=\"center\" width=\"100%\"\u003e\n  \u003cimg src=\"./assets/logo.png\" alt=\"Git sync logo\" width=\"150\" /\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\" width=\"100%\"\u003e\n    \u003ch2\u003e🔄 git-sync\u003c/h2\u003e\n    \u003cp\u003eA simple tool to backup and sync your git repositories\u003c/p\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/AkashRajpurohit/git-sync/actions\"\u003e\u003cimg src=\"https://github.com/AkashRajpurohit/git-sync/actions/workflows/release.yml/badge.svg?event=push\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/AkashRajpurohit/git-sync\"\u003e\u003cimg alt=\"Go Report Card\" src=\"https://goreportcard.com/badge/github.com/AkashRajpurohit/git-sync\"\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/AkashRajpurohit/git-sync/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/AkashRajpurohit/git-sync/total\" /\u003e\u003c/a\u003e\n    \u003cimg alt=\"Visitors\" src=\"https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fvc.akashrajpurohit.com%2Fc%2Fakash~git-sync\u0026query=count\u0026style=flat\u0026logo=github\u0026label=Visitors\u0026color=066da5\"\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/AkashRajpurohit/git-sync/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/AkashRajpurohit/git-sync?filename=go.mod\" /\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://ko-fi.com/akashrajpurohit\"\u003e\u003cimg src=\"https://img.shields.io/badge/Ko--fi-F16061?style=flat-square\u0026logo=ko-fi\u0026logoColor=white\" /\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://akashrajpurohit.com/sponsors/?ref=git-sync\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor-AkashRajpurohit-F16061?style=flat-square\u0026logoColor=white\" /\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/AkashRajpurohit/git-sync/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/AkashRajpurohit/git-sync?display_name=tag\" /\u003e\u003c/a\u003e\n    \u003ca href=\"#-contributors\"\u003e\u003cimg alt=\"All Contributors\" src=\"https://img.shields.io/github/all-contributors/AkashRajpurohit/git-sync?color=1f85bf\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/AkashRajpurohit/git-sync\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/AkashRajpurohit/git-sync\" /\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003cp align=\"center\"\u003e\n      \u003ca href=\"https://github.com/AkashRajpurohit/git-sync/issues/new?template=bug_report.yml\"\u003eBug report\u003c/a\u003e\n      ·\n      \u003ca href=\"https://github.com/AkashRajpurohit/git-sync/issues/new?template=feature_request.yml\"\u003eFeature request\u003c/a\u003e\n      ·\n      \u003ca href=\"https://github.com/AkashRajpurohit/git-sync/wiki\"\u003eRead Docs\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n\u003chr /\u003e\n\n`git-sync` is a CLI tool designed to help you back up your Git repositories. This tool ensures you have a local copy of your repositories, safeguarding against potential issues such as account bans or data loss.\n\n## 📺 Demo\n\n[![asciicast](./assets/asciinema.svg)](https://asciinema.org/a/716502)\n\n## 🤔 Why `git-sync`?\n\nRemember when `@defunkt` [GitHub account got banned?](https://twitter.com/defunkt/status/1754610843361362360) Well, he is the co-founder of GitHub so he did get his account un-banned pretty quickly but what if you are not that lucky?\n\nRecently I have seen many developers [getting their GitHub account banned](https://www.reddit.com/r/github/search/?q=account+got+banned\u0026sort=new) and losing access to their repositories. Some may be able to recover their account (but there is delay in that) and some may not be able to recover their account at all. What would you do if you lose access to your repositories? What if GitHub goes down? What if you accidentally delete your repositories? The answer is simple, you should have a backup of your repositories.\n\n`git-sync` provides a straightforward way to back up all your repositories locally, ensuring you have access to your code whenever you need it. It does this by doing a bare clone of all your repositories in a specified directory so that you can recover your code in case of any unforeseen circumstances as well as the file size of your backups is minimal.\n\n## ✨ Features\n\n- **Backup All Repositories:** Automatically clone or update all your GitHub repositories to a local directory.\n- **Periodic Sync:** Keep your backups in sync with your remote repositories by running `git-sync` [periodically](https://github.com/AkashRajpurohit/git-sync/wiki/Setup-Periodic-Backups).\n- **Multi Clone:** While git-sync was designed to work with bare clones to save space and speed up the syncing process, it also supports shallow, mirror and full clones too.\n- **Concurrency:** Sync multiple repositories concurrently to reduce the time required for backup.\n- **Configuration File:** Easily manage your settings through a YAML configuration file.\n- **Custom Backup Directory:** Specify the directory where you want to store your repositories.\n- **Multi Platform:** Currently this project supports backing up repositories from all major Git hosting services like GitHub, GitLab, Bitbucket, Gitea and Forgejo.\n- **Notifications:** Get notified when your sync is complete, or if there are any errors.\n\n## 🚀 Getting Started\n\nWe have a thorough guide on how to set up and get started with `git-sync` in our [documentation](https://github.com/AkashRajpurohit/git-sync/wiki).\n\n## 🙏🏻 Support\n\nIf you found the project helpful, consider giving it a star ⭐️. If you would like to support the project in other ways, you can [buy me a coffee](https://ko-fi.com/akashrajpurohit) or [sponsor me on GitHub](https://github.com/sponsors/AkashRajpurohit).\n\n\u003ca href=\"https://eternalvault.app/?ref=git-sync\"\u003e\u003cimg src=\"./assets/sponsor-banner.png\" alt=\"Eternal Vault\" width=\"100%\" /\u003e\u003c/a\u003e\n\n## 🐛 Bugs or Requests\n\nIf you encounter any problems feel free to open an [issue](https://github.com/AkashRajpurohit/git-sync/issues/new?template=bug_report.yml). If you feel the project is missing a feature, please raise a [ticket](https://github.com/AkashRajpurohit/git-sync/issues/new?template=feature_request.yml) on GitHub and I'll look into it. Pull requests are also welcome.\n\n## 🫱🏻‍🫲🏼 Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://akashrajpurohit.com/?ref=git-sync\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/30044630?v=4?s=100\" width=\"100px;\" alt=\"Akash Rajpurohit\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAkash Rajpurohit\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-AkashRajpurohit\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-AkashRajpurohit\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#review-AkashRajpurohit\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#doc-AkashRajpurohit\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#question-AkashRajpurohit\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e \u003ca href=\"#platform-AkashRajpurohit\" title=\"Packaging/porting to new platform\"\u003e📦\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://joao.bonadiman.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18357636?v=4?s=100\" width=\"100px;\" alt=\"João Vitor Bonadiman\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJoão Vitor Bonadiman\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-jbonadiman\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-jbonadiman\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#question-jbonadiman\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://qlaffont.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10044790?v=4?s=100\" width=\"100px;\" alt=\"Quentin Laffont\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eQuentin Laffont\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-qlaffont\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/acompagno\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4412299?v=4?s=100\" width=\"100px;\" alt=\"Andre Compagno\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndre Compagno\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-acompagno\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://janusworx.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4888781?v=4?s=100\" width=\"100px;\" alt=\"Mario Jason Braganza\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMario Jason Braganza\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#bug-jasonbraganza\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://blog.singee.me\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11208082?v=4?s=100\" width=\"100px;\" alt=\"Bryan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBryan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-ImSingee\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/3timeslazy\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/23486601?v=4?s=100\" width=\"100px;\" alt=\"Vladimir Fetisov\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVladimir Fetisov\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-3timeslazy\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#bug-3timeslazy\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.peterdavehello.org/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3691490?v=4?s=100\" width=\"100px;\" alt=\"Peter Dave Hello\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePeter Dave Hello\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#platform-PeterDaveHello\" title=\"Packaging/porting to new platform\"\u003e📦\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## 👀 Who am I?\n\n[![Website Badge](https://img.shields.io/badge/-akashrajpurohit.com-3b5998?logo=google-chrome\u0026logoColor=white)](https://akashrajpurohit.com/)\n[![Linkedin Badge](https://img.shields.io/badge/-@AkashRajpurohit-0e76a8?logo=Linkedin\u0026logoColor=white)](https://linkedin.com/in/AkashRajpurohit)\n[![Twitter Badge](https://img.shields.io/twitter/follow/akashwhocodes)](https://twitter.com/AkashWhoCodes)\n[![Mastodon Follow](https://img.shields.io/mastodon/follow/112372456922065040)](https://mastodon.social/@akashrajpurohit)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkashRajpurohit%2Fgit-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAkashRajpurohit%2Fgit-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkashRajpurohit%2Fgit-sync/lists"}