{"id":26697408,"url":"https://github.com/viscouspot/gitsync","last_synced_at":"2026-05-19T02:17:44.588Z","repository":{"id":243411763,"uuid":"812362660","full_name":"ViscousPot/GitSync","owner":"ViscousPot","description":"Mobile Git client for syncing a repository between remote and a local directory","archived":false,"fork":false,"pushed_at":"2026-02-19T18:11:42.000Z","size":21685,"stargazers_count":1383,"open_issues_count":79,"forks_count":111,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-02-19T18:13:36.357Z","etag":null,"topics":["git","obsidian","productivity","sync"],"latest_commit_sha":null,"homepage":"https://gitsync.viscouspotenti.al","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ViscousPot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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":{"github":"ViscousPot","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-06-08T17:10:16.000Z","updated_at":"2026-02-19T18:11:48.000Z","dependencies_parsed_at":"2024-08-26T20:33:10.984Z","dependency_job_id":"b03630af-d44b-4a3b-a57e-38345c2077f1","html_url":"https://github.com/ViscousPot/GitSync","commit_stats":null,"previous_names":["viscouspotential/gitsync"],"tags_count":101,"template":false,"template_full_name":null,"purl":"pkg:github/ViscousPot/GitSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViscousPot%2FGitSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViscousPot%2FGitSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViscousPot%2FGitSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViscousPot%2FGitSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViscousPot","download_url":"https://codeload.github.com/ViscousPot/GitSync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViscousPot%2FGitSync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29734004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["git","obsidian","productivity","sync"],"created_at":"2025-03-26T21:19:14.809Z","updated_at":"2026-05-19T02:17:44.571Z","avatar_url":"https://github.com/ViscousPot.png","language":"Dart","funding_links":["https://github.com/sponsors/ViscousPot"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr/\u003e\n  \u003cimg \n    src=\"android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp\" width=\"140\" \n  /\u003e\n\n  \u003ch3\u003eGitSync\u003c/h3\u003e\n  \u003ch4\u003eMobile git client for syncing a repository between remote and a local directory\u003c/h4\u003e\n  \n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/license/ViscousPot/GitSync?v=1\" alt=\"license\"\u003e\u003c/a\u003e\n    \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/ViscousPot/GitSync?v=1\" alt=\"last commit\"\u003e\u003c/a\u003e\n    \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/ViscousPot/GitSync/total\" alt=\"downloads\"\u003e\u003c/a\u003e\n    \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ViscousPot/GitSync?v=1\" alt=\"stars\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/sponsors/ViscousPot\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=%23fe8e86\" alt=\"sponsor\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n    \u003cimg alt=\"2024 Gem of the Year (Obsidian Tools)\" src=\"https://img.shields.io/badge/2024%20Gem%20of%20the%20Year%20(Obsidian%20Tools)-black?style=for-the-badge\u0026logo=obsidian\u0026logoColor=hotpink\"\u003e\n    \u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://gitsync.viscouspotenti.al/wiki\"\u003e\u003cimg alt=\"Wiki\" src=\"https://img.shields.io/badge/wiki-white?style=for-the-badge\"\u003e\u003c/a\u003e\n \u003c/p\u003e\n \n  \u003cp align=\"center\"\u003e\n  \u003ca href=\"https://play.google.com/store/apps/details?id=com.viscouspot.gitsync\" target=\"_blank\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg\" alt=\"Get it on Google Play\" style=\"height: 48px\" \u003e\u003c/a\u003e  \n  \u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://apps.apple.com/us/app/gitsync/id6744980427\" target=\"_blank\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/9/91/Download_on_the_App_Store_RGB_blk.svg\" alt=\"Get it on Google Play\" style=\"height: 48px\" \u003e\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://apt.izzysoft.de/fdroid/index/apk/com.viscouspot.gitsync\" target=\"_blank\"\u003e\u003cimg src=\"https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroidButtonGreyBorder_nofont.png\" alt=\"Get it on Izzy On Droid\" style=\"height: 48px\" \u003e\u003c/a\u003e\n\u003cbr\u003e\n      \u003ca href=\"https://f-droid.org/en/packages/com.viscouspot.gitsync\" target=\"_blank\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/a/a3/Get_it_on_F-Droid_%28material_design%29.svg\" alt=\"Get it on F-Droid\" style=\"height: 48px\" \u003e\u003c/a\u003e \n   \u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.viscouspot.gitsync%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FViscousPot%2FGitSync%22%2C%22author%22%3A%22ViscousPot%22%2C%22name%22%3A%22GitSync%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22sortMethodChoice%5C%22%3A%5C%22date%5C%22%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Atrue%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%2C%5C%22includeZips%5C%22%3Afalse%2C%5C%22zippedApkFilterRegEx%5C%22%3A%5C%22%5C%22%7D%22%2C%22overrideSource%22%3Anull%7D\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/ImranR98/Obtainium/refs/heads/main/assets/graphics/badge_obtainium.png\" alt=\"Get it on Obtainium\" style=\"height: 48px\" \u003e\u003c/a\u003e \n  \u003c/p\u003e\n\n  \u003cbr /\u003e\n\n\u003c/div\u003e\n\nGitSync is a cross-platform git client for Android and iOS that aims to simplify the process of syncing a folder between a git remote and a local directory. It works in the background to keep your files synced with a simple one-time setup and a range of options for activating manual syncs.\n\n| ![Seamless Git File Sync](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/01.png) | ![Resolve Merge Conflicts on Mobile](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/02.png) | ![Connect any Git Provider](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/03.png) | ![Sync in the Background](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/04.png) | ![Manage it All](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/05.png) | ![Trusted by Developers](https://github.com/ViscousPot/GitSync/blob/main/fastlane/metadata/android/en-GB/images/phoneScreenshots/06.png) |\n|---|---|---|---|---|---|\n\n- **Supports Android 5+ \u0026 iOS 13+**\n- Authenticate with\n  - **HTTP/S**\n  - **SSH**\n  - **OAuth** (GitHub, GitLab, Gitea)\n- Clone a remote repository\n- Sync repository\n  - Fetch, pull, stage, commit, push\n  - Resolve merge conflicts\n  - Retry automatically when the network returns\n- Sync mechanisms\n  - When an app is opened or closed (Android)\n  - On a recurring schedule\n  - From a quick tile (Android)\n  - From a home screen widget\n  - From an iOS shortcut or automation\n  - From a custom intent (advanced)\n- Browse and edit in-app\n  - File explorer with code editor and image viewer\n  - Recent commits, plus file, line and commit diffs\n  - Branch management (create, rename, delete, checkout)\n  - Multiple remotes (add, rename, delete, set URL)\n- GitHub and GitLab integration (when signed in via OAuth)\n  - View, comment on and create issues\n  - View, comment on and create pull requests\n  - View workflow runs (GitHub Actions)\n- AI features\n  - Chat about your repository\n  - Wand auto-complete on text fields like commit messages\n  - Agent that can run repo actions for you\n  - Separate model selection for chat, tools and the wand\n  - A global toggle to hide all AI features\n- Manage multiple repositories with containers\n- Repository settings\n  - Signed commits\n  - Customisable sync commit messages\n  - Author details\n  - Edit `.gitignore` and `.git/info/exclude`\n  - Disable SSL verification per repo\n\nMore information can be found at the [wiki](https://gitsync.viscouspotenti.al/wiki)\n\u003cbr\u003e\nGive us a ⭐ if you like our work. Much appreciated!\n\n## Support\n\nFor support, email bugs.viscouspotential@gmail.com or create an issue in this repository.\n\n## Build Instructions\n\nIf you just want to try the app out, feel free to download a release from an official platform!\n\nGitSync is a Flutter app with a Rust core (via [`flutter_rust_bridge`](https://github.com/fzyzcjy/flutter_rust_bridge)).\n\n### 1. Prerequisites\n\n- **Flutter**: version pinned in [`.fvmrc`](.fvmrc) (currently 3.35.2). The repo is set up for [FVM](https://fvm.app/); install with `dart pub global activate fvm` and then `fvm install`.\n- **Rust**: stable toolchain via [rustup](https://rustup.rs/). The Rust crate lives in [`rust/`](rust/).\n- **Android**: Android Studio with a recent SDK (compileSdk follows Flutter, minSdk 21). The Rust crate cross-compiles to `aarch64`, `armv7`, `x86_64` and `i686` targets, which you can add via `rustup target add`.\n- **iOS**: Xcode 15+ on macOS, the `aarch64-apple-ios`, `aarch64-apple-ios-sim` and `x86_64-apple-ios` Rust targets, and CocoaPods.\n\n### 2. Clone \u0026 install\n\n```bash\ngit clone https://github.com/ViscousPot/GitSync.git\ncd GitSync\nfvm flutter pub get\n```\n\n### 3. OAuth secrets\n\nOAuth providers (GitHub, GitLab, Gitea) need client IDs/secrets. The repo ships a template:\n\n```bash\ncp lib/constant/secrets.dart.template lib/constant/secrets.dart\n```\n\nSet `oauthRedirectUrl = \"gitsync://auth\"`. Without these the OAuth sign-in flows won't work, but HTTPS Basic and SSH still do.\n\n### 4. Generate the Rust ↔ Dart bindings\n\nThe bridge is regenerated when the Rust API changes:\n\n```bash\ncargo install flutter_rust_bridge_codegen --version 2.12.0\nflutter_rust_bridge_codegen generate\n```\n\n### 5. Run\n\n```bash\nfvm flutter run\n```\n\n## Contributing\n\nYour support means a lot! If you find GitSync useful, please:\n\n- Star the repo to help others discover it\n- Share it with friends or communities that might benefit\n- Consider becoming a [GitHub Sponsor](https://github.com/sponsors/ViscousPot)\n\n\u003cbr\u003e\nAt this time, code contributions aren’t needed anywhere in particular, but I’d love your help improving \u003cstrong\u003e\u003ca href=\"#localization-contributions\"\u003elocalization\u003c/a\u003e\u003c/strong\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch3 style=\"display:inline-block;\"\u003eLocalization Contributions\u003c/h3\u003e\u003c/summary\u003e\n\nIf you’d like to contribute translations:\n\n1. Locate the **English strings** in `lib/l10n/app_en.arb`\n2. Find the corresponding language file (e.g. `lib/l10n/app_es.arb` for Spanish)\n3. Add or refine translations in the appropriate file\n4. Submit a pull request or open an issue with your suggestions\n\nCurrently supported languages:\n\n- English (`app_en.arb`, the source file)\n- Arabic (`app_ar.arb`)\n- Chinese, Simplified (`app_zh.arb`)\n- Chinese, Traditional (`app_zh_Hant.arb`, early stage)\n- French (`app_fr.arb`)\n- German (`app.de.arb`)\n- Japanese (`app_ja.arb`)\n- Russian (`app_ru.arb`)\n- Spanish (`app_es.arb`)\n\nIf you'd like to know what's still untranslated for a given locale, see [`untranslated.txt`](untranslated.txt). Even small improvements to wording or grammar are welcome.\n\n\u003c/details\u003e\n\n## Acknowledgements\n\n- [flutter_rust_bridge](https://github.com/fzyzcjy/flutter_rust_bridge)\n- [git2-rs](https://github.com/rust-lang/git2-rs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviscouspot%2Fgitsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviscouspot%2Fgitsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviscouspot%2Fgitsync/lists"}