Gitzy 2.0 — User Guide
Clone, inspect, review, patch, stage, sync, and manage repositories with a mobile-first Git client built for real daily work.
What’s New in 2.0
Pull Request Workflows
Create, inspect, review, checkout, and merge pull requests with provider-aware support across GitHub, GitLab, Forgejo/Codeberg, and Gitea.
Interactive Staging
Shape commits directly on mobile with file, hunk, and line-level staging and discard actions.
Patch Tools
Export, preview, import, apply, share, and undo patches directly inside Gitzy.
Explorer, LFS, Worktrees
Browse repositories with search, blame, history, syntax highlighting, image preview, worktree tooling, submodule management, Git LFS diagnostics, and clearer in-app settings guidance.
What’s New in 2.1
Gitzy 2.1 builds on 2.0 with faster repository opening, clearer credential management, and a tidier repository screen.
Faster commit graph
Reopening a repository now restores the commit graph from cache, so the history appears instantly. The graph still refreshes after you commit, push, pull, or refresh.
Central HTTPS token management
In Settings → Authentication → HTTPS Tokens you can see all hosts (from your repos and stored tokens), check credential status (OK, no token, or issue), and add, update, or remove tokens in one place.
Credential health in repo detail
Under the repository title, a small credential pill shows the status for that host (e.g. Credentials OK, Token configured, No token). Tap it to update the token, remove it, or retry validation. A soft warning appears before sync if credentials are missing or recently failed.
Clearer repository layout
Repository actions (Worktrees, Git LFS, Workspace, Files, Working Tree vs HEAD, Pull Requests) are grouped under two section headers — Repository and Browse & collaborate — so the screen is less cluttered.
Release workflow
Generating draft release notes in an empty repository now shows a clear message. The release workflow sheet shows a proper “Generating draft…” state while the draft is being built.
Getting Started
After installing Gitzy, you can clone a repository over HTTPS, open an existing folder that contains a Git repo, or create a new repository. Use the main screen buttons or the Repository Actions menu (top right).
Clone
Paste a repository URL (e.g. from GitHub, Codeberg, GitLab, Forgejo, or Gitea). Choose a destination folder (e.g. On My iPhone or iCloud). You can clone as Read-Only if you only want to browse. HTTPS remotes will prompt for credentials; tokens are stored securely in the Keychain.
Open / New
Open lets you pick an existing folder that already has a .git
directory. New creates a new Git repository in a folder you choose. You can
open or create repos in iCloud Drive so they sync across devices.
Repositories
The repository list shows all your added repos with current branch, sync status (ahead/behind), and platform accent (GitHub, Codeberg, GitLab, etc.). Tap a row to open the repository detail.
Repository actions
- Edit repository (context menu): Change display name and choose a repository accent (color) or use the platform color.
- Read-Only: Each repo can be set to Read-Only for safety. In Read-Only mode only Fetch and Pull are allowed; commits, push, merge, etc. are blocked until you enable write access.
- Repo list can be synced across devices via iCloud (Settings → Sync).
Commit Graph
The main view inside a repository is the commit graph: a visual history of commits with lanes, branches, and merge nodes. You see the current branch, tags, and HEAD.
Search & scrubber
Use the search bar to filter by commit message, author, or hash. Gitzy 2.0 also adds Jump To shortcuts for HEAD, Last Tag, Last Merge, and Last Week. The optional scrubber (right side, can be toggled in Settings → Commit Graph) is a mini-map: tap a point to jump to that commit.
Time markers & inline stats
Commits are grouped with labels like Today, Yesterday, Last week. Expand a commit row (chevron) to see inline stats: number of files changed and insertions/deletions.
Context menu (long-press)
Long-press a commit to open the context menu:
- View details — Full commit message and changed files.
- Add tag… — Create a tag at this commit.
- Create branch… — Create a new branch from this commit (with optional checkout).
- Compare — Select as base or target; then View diff to see the diff between two commits.
- View diff vs parent — See the diff of this commit against its parent.
- Reset branch to here… — Soft, mixed, or hard reset of the current branch to this commit.
- Revert commit… — Create a revert commit (merge commits get mainline option).
- Rebase onto this (on another branch) — Rebase the current branch onto the selected one.
- Squash into this commit… — Start the squash flow with this commit as the oldest.
- Copy — Short hash, full hash, or commit message.
Commit & Changes
In repository detail, the Changes area shows modified, added, and deleted files. You can stage whole files or use Interactive Staging for hunk-level and line-level staging/discard. Unstaged and staged diffs are shown with clear add/remove highlighting.
Commit workflow
- Stage or unstage files/hunks, then tap Commit. Enter a summary (and optional body). Empty message is not allowed.
- Amend: Update the last commit (message and/or staged changes). Use the amend entry in the UI; amend is only available when the branch has no unpushed commits or you accept rewriting history.
- Patch tools: Export commit/file-history patches, preview incoming patches, apply them, and undo successful applies when repository state is unchanged.
Branches
Open the Branches sheet from the repository to see local and remote branches. Switch branch, create a new one, or delete. From the graph you can Create branch from here (swipe or context menu) and choose whether to checkout the new branch.
Common actions
- Switch branch — Tap a branch to checkout. If there are uncommitted changes that would be overwritten, you’ll see a warning.
- Create branch — Name the branch and optionally set upstream to a remote branch.
- Rebase onto this — In the branches list, use the context menu on another branch to rebase the current branch onto it. Conflicts open the conflict resolver.
- Set upstream / Push — When pushing a branch for the first time you can set the upstream remote branch; the sheet can pre-fill the remote branch name.
Sync (Fetch, Pull, Push)
The repository detail shows remote status (ahead/behind). Use the Sync sheet to Fetch, Pull, or Push. Push operations normally run pre-push safety validations, showing a Before You Push sheet to warn about diverging branches or unsafe states. Gitzy 2.0 also adds predictive push outlook, structured safety reports, and an absolute sync workflow for aligning a branch with its remote.
Credentials
HTTPS remotes use tokens stored in the device Keychain. For private repos you add the token via Repository Actions → Clone (same flow as adding credentials for a host). SSH remotes use your existing SSH keys.
Push rejected
If push is rejected (e.g. non–fast-forward), Gitzy shows a Push Rejected sheet with the remote message and options (e.g. force push where supported) so you can decide how to proceed.
Advanced safety bypass
In Settings → Safety, advanced users can enable I know what I am doing with Git. This disables Gitzy's non-blocking push warnings and confirmations, while technical blockers such as authentication failures, detached targets, or in-progress operations still remain active.
Stash
Stash temporarily saves uncommitted changes so you can switch branch or pull. Open the Stash list from the repository; create a stash (with optional message), then Apply or Pop later. If applying causes conflicts, Gitzy reports them and you can resolve in the usual conflict flow.
Merge & Conflicts
Merge a branch into the current one from the Branches sheet. If there are merge conflicts, Gitzy shows a conflict banner and list of conflicted files. Open the conflict resolver to choose Ours or Theirs per block, or edit manually, then mark as resolved. Continue completes the merge; Abort cancels it and restores the pre-merge state.
Revert conflicts
Reverting a merge commit uses a mainline (e.g. -m 1). Gitzy handles this
automatically. If the revert itself has conflicts, you resolve them in the same conflict
screen and then continue the revert.
Interactive Rebase & Squash
Use Interactive Rebase to visually plan your history rewrite: drag-reorder a
todo list, and choose actions per commit (pick, reword,
squash, fixup, drop).
Alternatively, use the commit graph context menu: Squash into this commit… (this commit is the oldest in the range) or choose Last N commits in the squash flow.
Three-step flow
- Select range — Either “Squash from selected commit up to HEAD” or “Last N commits”. Tap Next.
- Preview — See combined diff and options:
Create backup branch before squash (recommended; creates e.g.
backup/squash-2026-03-02 12:00:00so you can recover), and Stash uncommitted changes automatically. Then Next. - Confirm — Edit the new commit message (summary and body), adjust options if needed, then tap Squash X commits.
Cherry-pick
Apply specific commits from one branch to another. Open the Cherry-pick sheet from Repository Actions to pick single or multiple commits. If conflicts arise, Gitzy hands you off to the conflict resolver!
Worktrees & Submodules
Worktrees
View linked or detached worktrees. Create a new worktree from an existing branch or detached OID. Open worktrees natively directly within Gitzy's UI.
Submodules
View live submodule status (expected vs current SHA), bulk initialize/update missing submodules, add new ones, and commit metadata updates accurately.
Bisect
Gitzy 2.0 adds a guided bisect workflow with resumable session recovery, midpoint iteration, and persistent result visibility after completion.
Git LFS & File Explorer
Git LFS (Large File Storage)
A dedicated Git LFS management sheet allows you to inspect tracked patterns, remote support, storage usage, migration candidates, and pre-push safety checks, while still downloading missing objects and hydrating large files when needed. Settings also exposes hydration, large-download prompts, and migration suggestion controls.
File Explorer & History
Browse repository files with search, syntax highlighting, line numbers, markdown preview, JSON pretty-print, image preview, file history, and line-by-line Blame to trace file origins.
Reset & Revert
Reset branch to here
From the graph context menu, Reset branch to here… opens a sheet where you choose Soft (keep changes staged), Mixed (keep changes unstaged), or Hard (discard changes). Confirming moves the current branch to the selected commit.
Revert commit
Revert commit… creates a new commit that undoes the chosen commit. For merge
commits, Gitzy asks for the mainline (e.g. parent 1) and handles -m 1
automatically. If the revert hits conflicts, you resolve them in the conflict screen and
continue.
Pull Requests
For supported hosts (e.g. GitHub, Codeberg, GitLab), open Pull Requests from the repository to list open PRs. Tap one to see description, files changed, diff, checks, branch protection context, and merge readiness. You can submit reviews and comments where the host API supports it.
Gitzy Pro
Gitzy Pro is a one-time in-app purchase that unlocks write access: commit, push, merge, branch, stash, reset, revert, squash, etc. Without Pro, the app is in read-only mode: you can browse repos, view history, fetch, and pull, but all write actions are blocked with a clear message and an Unlock button that opens the paywall.
Settings
In Settings, the Pro section at the top shows either Unlock Gitzy Pro (tap to open the paywall) or Gitzy Pro — Active when you’ve purchased. From the active state you can View Pro info (re-read features and terms), Restore Purchases, and manage your unlock.
AI Help
Where enabled, Gitzy can use Apple Intelligence, cloud providers, or Local AI (on-device models) to help with your repo. AI features may include:
- Developer Insights — Analyze Repo Summary, Merge Risk, Commit Quality, and PR Complexity before you push your code.
- Repository AI chat — Ask questions about the repo; context (recent commits, branch status, staging) is sent so answers are relevant.
- Explain hunk — In diff or compare view, send a specific hunk to the AI for a plain-language explanation of the change.
Settings → AI
Configure AI providers, Local AI models (download, select, diagnostics), and privacy options. Local AI runs entirely on device; cloud providers use their respective APIs and policies.
Security & Privacy
Keychain
HTTPS tokens are stored in the device Keychain (hardware-backed where available). Only host mappings are synced via iCloud; tokens never leave the device to iCloud servers.
Read-Only
Read-Only is enforced in the app and in GitCore. In Read-Only mode, only Fetch and Pull are allowed; all local and remote write operations are blocked until you explicitly enable write access for that repository.
Sync & Portability
Gitzy can sync your repository list across devices using iCloud. Repositories stored in shared roots (e.g. iCloud Drive) use a portable identity so that on another device the app can remap paths and open the same repos without re-adding them manually.
Settings Overview
From the main screen, tap the gear icon to open Settings. Key sections:
Workflow, Safety, and LFS
Commit Workflow covers message style, templates, and pre-commit checks. Safety controls push warnings, protected branches, typed force-push confirmation, and the explicit I know what I am doing with Git bypass. Git LFS covers hydration behavior, large-download prompts, commit warnings, and migration suggestions.
Clearer helper copy
Existing settings now include short helper text directly below toggles and controls, so you can understand what each option changes without leaving the Settings screen.
- Git Identity — Optional name and email for commits; override on commit/amend option.
- Repositories — Default folder for clone and new repos.
- Sync — iCloud sync for app data and repository list.
- Commit Graph — Toggle scrubber, time markers, etc.
- Appearance — Theme (system, light, dark).
- AI — Providers, Local AI models, diagnostics.
- Privacy — Data and privacy links.
- Support — Help and contact.
Technical Foundation
Gitzy is built on a high-performance architecture that combines native Swift with LibGit2.
LibGit2 Backend
Gitzy uses direct C bindings to LibGit2 (no shell Git). This enables:
- Fast file status via memory-mapped indexes.
- Hunk-level staging without external commands.
- Efficient diff generation and OID calculation.
For developers
If you work on the Gitzy codebase, a structured app map is available in the repository: Docs/APP_MAP.md. It describes the top-level structure (GitzyApp vs GitCore), entry and navigation, core user flows (clone, commit, sync, graph, PRs, release, LFS, worktrees, patches, bisect), and key technical layers (GitCore API, auth/credentials, theme). Use it for onboarding and to find where features live.