/oxidized_git

A Git GUI written in Rust!

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Oxidized Git

Features

Easily view your commit history and perform various Git operations

Graph Screenshot

Stage changes before you commit them

Changes Screenshot

  • Create/Delete Branches
  • Checkout branches (similar to git switch)
  • Commit
  • Fetch
  • Pull (automatically detects and performs either a fast-forward merge or a rebase!)
  • Push (with option to Force Push)
  • Save and Apply Stashes
  • View File Diffs in a Commit
  • Stage/Unstage and View Changes
  • Discard Changes
  • Merge
  • Rebase
  • Cherrypick
  • Revert
  • Reset (Soft, Mixed, or Hard)

Usage

Download and install the desired version from the "Releases"

Linux

For Development

Windows

Mac

Linux

Debian-based distros (Untested)

Arch-based distros

All

  • Run npm install in the project root
  • (Optional) Consider setting the environment variable RUST_BACKTRACE to 1 if you want a backtrace when an error occurs
  • Run npm run tauri dev in the project root to run the dev environment or npm run tauri build to package the application

Making a Release

For creating release packages, you will need:

  • TAURI_PRIVATE_KEY and TAURI_KEY_PASSWORD set to sign updates for all versions
  • APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_ID, APPLE_PASSWORD, APPLE_PROVIDER_SHORT_NAME, and APPLE_SIGNING_IDENTITY set to sign and notarize Apple versions

There are 3 places that the version number needs to be updated BEFORE pushing the version tag (which should kick off the pipelines that create a GitHub release):

  • src-tauri/Cargo.toml
  • src-tauri/Cargo.lock
  • src-tauri/tauri.conf.json

Once the GitHub release has been created and published (which you have to do manually), you'll need to update the version field and the versions in the urls and the signature fields (by copying the signatures generated in the associated .sig files) in current_version.json and push it up (so that the tauri updater will automatically download from the new release).