https://github.com/dongri/gity
A modern macOS Git client written in Swift
https://github.com/dongri/gity
git gity macos swift
Last synced: 4 months ago
JSON representation
A modern macOS Git client written in Swift
- Host: GitHub
- URL: https://github.com/dongri/gity
- Owner: dongri
- Created: 2026-01-16T12:56:23.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-02-22T22:09:30.000Z (4 months ago)
- Last Synced: 2026-02-23T03:05:47.261Z (4 months ago)
- Topics: git, gity, macos, swift
- Language: Swift
- Homepage: https://dongri.github.io/gity
- Size: 1.19 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GitY
A modern macOS Git client written in Swift, inspired by GitX.
## Overview
GitY is a complete rewrite of the classic GitX application in Swift, featuring the same familiar UI and functionality with modern macOS technologies.
## Screenshots

## Installation
### Using Homebrew (Recommended)
The easiest way to install GitY is via Homebrew Cask:
```bash
brew install --cask dongri/tap/gity
```
### Manual Installation (DMG)
1. Download `GitY.dmg` from the [latest release](https://github.com/dongri/gity/releases/latest).
2. Open the DMG file.
3. Drag `GitY.app` to the **Applications** folder.
4. Launch GitY from Applications.
> **Note**: GitY is signed and notarized by Apple, so it will launch without any security warnings.
### From Source
```bash
git clone https://github.com/dongri/gity.git
cd gity
xcodebuild -project GitY.xcodeproj -scheme GitY -configuration Release build
```
## Command Line Tool
After installing GitY, you can install the `gity` command line tool:
1. Open GitY
2. Go to **Settings** > **Integration**
3. Click **Install Command Line Tools**
Then use it from Terminal:
```bash
gity # Open current directory
gity . # Open current directory
gity /path/to/repo # Open specific repository
```
## Features
- 📁 **Repository Browser** - Navigate through your Git repository with ease
- 📜 **Commit History** - View detailed commit history with diffs
- ✏️ **Stage View** - Stage and unstage files with visual feedback
- 🌿 **Branch Management** - Create, checkout, and delete branches
- 🔄 **Remote Operations** - Fetch, pull, and push to remotes
- 📦 **Stash Support** - Save, apply, pop, and drop stashes
- 📂 **Submodule Support** - View and manage Git submodules
- 🔍 **Diff Viewer** - Syntax-highlighted diff viewing
- ⚡ **Performance Optimized** - Asynchronous loading for smooth UI
- 🖥️ **Command Line Tool** - Open repositories from Terminal
- 🤖 **AI Commit Messages** - Generate intelligent commit messages using local LLMs
- ✅ **Signed & Notarized** - Verified by Apple for security
## Requirements
- macOS 13.0 (Ventura) or later
- Git installed (usually at `/usr/bin/git`)
## Building from Source
### Requirements
- Xcode 15.0 or later
- macOS 13.0 or later
### Build Steps
#### Using Xcode
1. Open `GitY.xcodeproj` in Xcode
2. Select the GitY scheme
3. Build and run (⌘R)
#### Using Command Line
```bash
# Clone the repository
git clone https://github.com/dongri/gity.git
cd gity
# Build
xcodebuild -project GitY.xcodeproj -scheme GitY -configuration Release build
# The app will be in DerivedData
open ~/Library/Developer/Xcode/DerivedData/GitY-*/Build/Products/Release/GitY.app
```
#### Using Swift Package Manager
```bash
# Clone the repository
git clone https://github.com/dongri/gity.git
cd gity
# Build and run
swift run
```
## Architecture
GitY is built using SwiftUI and follows a clean architecture:
```
Sources/
├── GitYApp.swift # App entry point
├── Models/
│ ├── GitRepository.swift # Core repository model (async Git operations)
│ ├── GitRef.swift # Branch/Tag references
│ ├── GitCommit.swift # Commit model
│ ├── ChangedFile.swift # File changes
│ ├── GitStash.swift # Stash model
│ └── GitSubmodule.swift # Submodule model
├── Services/
│ └── LocalLLMService.swift # Local LLM integration
├── Views/
│ ├── ContentView.swift # Main content view
│ ├── WelcomeView.swift # Welcome screen
│ ├── MainRepositoryView.swift # Repository view
│ ├── SidebarView.swift # Navigation sidebar
│ ├── StageView.swift # Staging area
│ ├── HistoryView.swift # Commit history
│ ├── DiffView.swift # Diff viewer
│ └── PreferencesView.swift # Settings (including CLI install)
└── Utils/
├── DirectoryWatcher.swift
└── RelativeDateFormatter.swift
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
GitY is released under the MIT License.
## Credits
- Original GitX by Pieter de Bie
- Swift rewrite inspired by the original Objective-C implementation
---
Made with ❤️ in Swift