README.md
July 10, 2026 · View on GitHub
Gitling
Gitling is a Git client for Android, built with Jetpack Compose and Material 3 Expressive.
It's a fork of MGit (itself a continuation of SGit), modernized with a current Android toolchain, a from-scratch Compose UI, one-tap GitHub sign-in, and a new identity.
- If you encounter any issues (bugs, crashes, etc.), please open an issue on GitHub describing what happened and how to reproduce it.
- This app requires a minimum of Android 6.0 (API 23).
Screenshots
![]() |
![]() |
![]() |
![]() |
| Repository list | Commit graph | Git console | Status — stage/unstage all |
![]() |
![]() |
![]() |
![]() |
| File viewer | Blame view | Commit diff | Settings |
Editing files
Gitling doesn't include an internal text editor -- to edit files, you'll need an editor app installed that supports opening files via Android's File Provider mechanism (most code/text editor apps do).
Features
- Clone, create, and delete local repositories
- One-tap Connect with GitHub (OAuth Device Flow) -- no manual token/password handling for GitHub remotes
- Self-hosted Forgejo and Gitea support -- add a Custom account with your instance URL
- HTTP/HTTPS/SSH, including SSH with private-key passphrase
- Username/password and personal access token authentication for any Git host
- Full branch/merge commit graph with lazygit-style lane visualization and inline branch/tag/HEAD labels
- Browse files and commit history,
git diffbetween commits - File blame view -- see which commit last touched each line
- Git command console -- run
status,log,diff,branch,stashdirectly from the Console tab - Checkout, create, and merge local/remote branches and tags
git status, staging,git rebase,git cherry-pick,git checkout <file>- Stage All / Unstage All -- bulk-stage or unstage every file from the Status screen in one tap
- Submodule init and update
- Search across repos, commit history, and file tree
- Pin repositories to keep them at the top of the list
- Tag repositories with custom labels and filter by them
- Home screen widget showing repo status and dirty/clean indicator
- Private key generation and management
- Import an existing repository from device storage
- Light/dark mode that follows the system, with a choice between a fixed brand color or wallpaper-based Material You dynamic color
Quick start
Clone a remote repository
- Tap the
+button to add a new repository - Enter the remote URL (see formats below)
- Enter a local repository name -- this is not the full path; Gitling stores all repositories under a common root directory (changeable in Settings)
- Tap
Clone - If required, you'll be prompted for credentials -- or connect your GitHub account once in Settings to skip this for GitHub remotes
Create a local repository
- Tap the
+button to add a new repository - Choose
Init Localto create a local repository - Enter a name when prompted
Self-hosted Forgejo / Gitea
- Go to Settings → Accounts and tap Add account
- Choose Custom as the account type
- Enter your username, a personal access token, and your instance URL (e.g.
https://forgejo.example.com) - Credentials are applied automatically on clone, fetch, and pull from that host
URL formats
SSH
- Standard port (22):
ssh://username@server_name/path/to/repo - Non-standard port:
ssh://username@server_name:port/path/to/repo - A username is required.
HTTP(S)
https://server_name/path/to/repo
License
GPLv3 -- see LICENSE.
This project is a fork of maks/MGit, itself a fork of sheimi/SGit. Credit to both for the original implementation this continues to build on.
Third-party fonts
The app's default typeface, Plus Jakarta Sans, is licensed under the SIL Open Font License 1.1. Settings > App font also offers Inter and JetBrains Mono as alternatives, both also OFL-1.1.







