Skip to content

Feature complete GitHub Desktop Inspired Git GUI built for linux

License

Notifications You must be signed in to change notification settings

FlynnFc/GitWise

Repository files navigation

GitWise

For my Dissertation I am making GitWise. GitWise is a Linux-first, user-friendly Git client inspired by GitHub Desktop, designed to streamline your version control workflow. Seamlessly integrate with GitHub, GitLab, Bitbucket, and more, all within a simple and intuitive interface that minimizes mental overhead and maximizes productivity.

Table of Contents

Features

  • Multi-Platform Support: Connect effortlessly with GitHub, GitLab, Bitbucket, and other Git services.
  • Intuitive UI: Clean and simple user interface designed to reduce complexity and enhance usability.
  • Repository Management: Easily clone, create, and manage your repositories from a single dashboard.
  • Branch Management: Visualize and manage branches with ease, including creating, switching, and merging branches.
  • Commit History: View detailed commit history with comprehensive information on each commit.
  • Integrated Issue Tracking: Access and manage issues directly within the app (integration dependent on platform).
  • Custom Integrations: Extend functionality with support for additional integrations as needed.
  • Cross-Platform Compatibility: Available on Windows, macOS, and Linux.

Implemented Features

Core Git Operations

  • Repository Management: Open existing repositories or clone new ones from remote URLs
  • File Status Tracking: View staged, modified, and untracked files with visual indicators
  • Branch Management: Create new branches, switch between branches, and view branch information
  • Commit Operations: Stage/unstage files, commit changes with custom messages
  • Remote Operations: Push and pull changes to/from remote repositories
  • Commit History: Browse complete commit history with author and timestamp information

🎨 User Interface

  • Modern Design: Clean, GitHub-inspired interface with intuitive navigation
  • Tabbed Interface: Organized sections for Changes, History, and Branches
  • Responsive Layout: Adapts to different screen sizes and window dimensions
  • Visual Feedback: Color-coded file statuses and loading indicators
  • Modal Dialogs: User-friendly forms for cloning repositories and creating branches

Technical Features

  • Tauri Backend: High-performance Rust backend using libgit2 for Git operations
  • Svelte Frontend: Modern, reactive frontend with TypeScript support
  • Cross-Platform: Works seamlessly on Windows, macOS, and Linux (including WSL)
  • File System Integration: Native file system access with proper permissions
  • Error Handling: Comprehensive error handling with user-friendly messages

Demo

The application provides a comprehensive Git client experience similar to GitHub Desktop:

  • Welcome Screen: Clean interface to get started with repository operations
  • Repository View: Full repository management with status overview
  • Changes Tab: Manage file staging and commit operations
  • History Tab: Browse commit history with detailed information
  • Branches Tab: Create and manage branches with easy checkout

Installation

Prerequisites

  • Operating System: Windows 10 or later, macOS 10.15 or later, Linux (Ubuntu, Fedora, etc.)
  • Git: Ensure Git is installed on your system. You can download it from git-scm.com.

Development Setup

  1. Clone the Repository:

    git clone https://github.com/flynnfc/gitwise.git
    cd gitwise
  2. Install Dependencies:

    # Install Rust dependencies
    cd src-tauri
    cargo build
    
    # Install frontend dependencies
    cd ..
    pnpm install
  3. Run in Development Mode:

    pnpm tauri dev

Building for Production

pnpm tauri build

Usage

Getting Started

  1. Launch GitWise from your applications menu or desktop shortcut.

  2. Open a Repository:

    • Click "Open Repository" to browse and select an existing Git repository
    • Or use "Clone Repository" to clone a new repository from a remote URL
  3. Manage Your Repository:

    • Changes Tab: View and stage/unstage files, commit changes
    • History Tab: Browse commit history and view commit details
    • Branches Tab: Create new branches and switch between existing ones

Key Operations

  • Staging Files: Click "Stage" on modified or untracked files
  • Committing: Enter a commit message and click "Commit" for staged changes
  • Branching: Create new branches from the Branches tab
  • Pushing/Pulling: Use the status bar buttons to sync with remote repositories

WSL Compatibility

GitWise is fully compatible with Linux. The application uses native file system APIs and Git operations that are fully supported in any major linux distro.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For questions or support, please open an issue on GitHub or contact the development team.

About

Feature complete GitHub Desktop Inspired Git GUI built for linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published