https://github.com/viscouspot/gitsync
Mobile Git client for syncing a repository between remote and a local directory
https://github.com/viscouspot/gitsync
git obsidian productivity sync
Last synced: 14 days ago
JSON representation
Mobile Git client for syncing a repository between remote and a local directory
- Host: GitHub
- URL: https://github.com/viscouspot/gitsync
- Owner: ViscousPot
- License: gpl-3.0
- Created: 2024-06-08T17:10:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-19T18:11:42.000Z (3 months ago)
- Last Synced: 2026-02-19T18:13:36.357Z (3 months ago)
- Topics: git, obsidian, productivity, sync
- Language: Dart
- Homepage: https://gitsync.viscouspotenti.al
- Size: 20.7 MB
- Stars: 1,383
- Watchers: 9
- Forks: 111
- Open Issues: 79
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
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 `.gitignore` and `.git/info/exclude`
- Disable SSL verification per repo
More information can be found at the [wiki](https://gitsync.viscouspotenti.al/wiki)
Give us a ⭐ if you like our work. Much appreciated!
## Support
For support, email bugs.viscouspotential@gmail.com or create an issue in this repository.
## Build Instructions
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`](https://github.com/fzyzcjy/flutter_rust_bridge)).
### 1. Prerequisites
- **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`.
- **Rust**: stable toolchain via [rustup](https://rustup.rs/). The Rust crate lives in [`rust/`](rust/).
- **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`.
- **iOS**: Xcode 15+ on macOS, the `aarch64-apple-ios`, `aarch64-apple-ios-sim` and `x86_64-apple-ios` Rust targets, and CocoaPods.
### 2. Clone & install
```bash
git clone https://github.com/ViscousPot/GitSync.git
cd GitSync
fvm flutter pub get
```
### 3. OAuth secrets
OAuth providers (GitHub, GitLab, Gitea) need client IDs/secrets. The repo ships a template:
```bash
cp lib/constant/secrets.dart.template lib/constant/secrets.dart
```
Set `oauthRedirectUrl = "gitsync://auth"`. Without these the OAuth sign-in flows won't work, but HTTPS Basic and SSH still do.
### 4. Generate the Rust ↔ Dart bindings
The bridge is regenerated when the Rust API changes:
```bash
cargo install flutter_rust_bridge_codegen --version 2.12.0
flutter_rust_bridge_codegen generate
```
### 5. Run
```bash
fvm flutter run
```
## Contributing
Your 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](https://github.com/sponsors/ViscousPot)
At this time, code contributions aren’t needed anywhere in particular, but I’d love your help improving localization
Localization Contributions
If you’d like to contribute translations:
1. Locate the **English strings** in `lib/l10n/app_en.arb`
2. Find the corresponding language file (e.g. `lib/l10n/app_es.arb` for Spanish)
3. Add or refine translations in the appropriate file
4. 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`](untranslated.txt). Even small improvements to wording or grammar are welcome.
## Acknowledgements
- [flutter_rust_bridge](https://github.com/fzyzcjy/flutter_rust_bridge)
- [git2-rs](https://github.com/rust-lang/git2-rs)

