GitSync 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.
- Supports Android 5+ & iOS 13+
- Authenticate with
- HTTP/S
- SSH
- OAuth (GitHub, GitLab, Gitea)
- Clone a remote repository
- Sync repository
- Fetch, pull, stage, commit, push
- Resolve merge conflicts
- Retry automatically when the network returns
- Sync mechanisms
- When an app is opened or closed (Android)
- On a recurring schedule
- From a quick tile (Android)
- From a home screen widget
- From an iOS shortcut or automation
- From a custom intent (advanced)
- Browse and edit in-app
- File explorer with code editor and image viewer
- Recent commits, plus file, line and commit diffs
- Branch management (create, rename, delete, checkout)
- Multiple remotes (add, rename, delete, set URL)
- GitHub and GitLab integration (when signed in via OAuth)
- View, comment on and create issues
- View, comment on and create pull requests
- View workflow runs (GitHub Actions)
- AI features
- Chat about your repository
- Wand auto-complete on text fields like commit messages
- Agent that can run repo actions for you
- Separate model selection for chat, tools and the wand
- A global toggle to hide all AI features
- Manage multiple repositories with containers
- Repository settings
- Signed commits
- Customisable sync commit messages
- Author details
- Edit
.gitignoreand.git/info/exclude - Disable SSL verification per repo
More information can be found at the wiki
Give us a ⭐ if you like our work. Much appreciated!
For support, email bugs.viscouspotential@gmail.com or create an issue in this repository.
If you just want to try the app out, feel free to download a release from an official platform!
GitSync is a Flutter app with a Rust core (via flutter_rust_bridge).
- Flutter: version pinned in
.fvmrc(currently 3.35.2). The repo is set up for FVM; install withdart pub global activate fvmand thenfvm install. - Rust: stable toolchain via rustup. The Rust crate lives in
rust/. - Android: Android Studio with a recent SDK (compileSdk follows Flutter, minSdk 21). The Rust crate cross-compiles to
aarch64,armv7,x86_64andi686targets, which you can add viarustup target add. - iOS: Xcode 15+ on macOS, the
aarch64-apple-ios,aarch64-apple-ios-simandx86_64-apple-iosRust targets, and CocoaPods.
git clone https://github.com/ViscousPot/GitSync.git
cd GitSync
fvm flutter pub getOAuth providers (GitHub, GitLab, Gitea) need client IDs/secrets. The repo ships a template:
cp lib/constant/secrets.dart.template lib/constant/secrets.dartSet oauthRedirectUrl = "gitsync://auth". Without these the OAuth sign-in flows won't work, but HTTPS Basic and SSH still do.
The bridge is regenerated when the Rust API changes:
cargo install flutter_rust_bridge_codegen --version 2.12.0
flutter_rust_bridge_codegen generatefvm flutter runYour support means a lot! If you find GitSync useful, please:
- Star the repo to help others discover it
- Share it with friends or communities that might benefit
- Consider becoming a GitHub Sponsor
At this time, code contributions aren’t needed anywhere in particular, but I’d love your help improving localization
If you’d like to contribute translations:
- Locate the English strings in
lib/l10n/app_en.arb - Find the corresponding language file (e.g.
lib/l10n/app_es.arbfor Spanish) - Add or refine translations in the appropriate file
- Submit a pull request or open an issue with your suggestions
Currently supported languages:
- English (
app_en.arb, the source file) - Arabic (
app_ar.arb) - Chinese, Simplified (
app_zh.arb) - Chinese, Traditional (
app_zh_Hant.arb, early stage) - French (
app_fr.arb) - German (
app.de.arb) - Japanese (
app_ja.arb) - Russian (
app_ru.arb) - Spanish (
app_es.arb)
If you'd like to know what's still untranslated for a given locale, see untranslated.txt. Even small improvements to wording or grammar are welcome.

