Giter Club home page Giter Club logo

reiniiriarios / ivy-git Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 8.81 MB

๐Ÿƒ Ivy Git is a work-in-progress Git GUI that aims to simplify workflow by putting the least amount of resistance between the user and git as possible, enabling diverse workflows without the constraints of being opinionated.

Home Page: https://ivygit.com

License: GNU General Public License v3.0

Go 39.26% HTML 0.05% Svelte 22.21% TypeScript 20.85% JavaScript 0.03% SCSS 17.08% Shell 0.01% Makefile 0.50%
git git-gui wails wails-app

ivy-git's Introduction

๐Ÿƒ Ivy Git

Ivy Git is a work-in-progress Git GUI that aims to simplify workflow by putting the least amount of resistance between the user and git as possible, enabling diverse workflows without the constraints of being opinionated.

It is built on Wails in Go, Svelte, Typescript, and SCSS, using Vite and WebView2 for the frontend.

โžก Download Latest Release

Screenshot of Commit List on macoS

Screenshot of Diff on Linux

๐Ÿ“ธ See More Screenshots

Major Features

  • Tree View
  • View file diffs/changes (current, staged, and commit history)
  • Stage/Unstage files
  • Stage/Unstage partial files by changed line
  • Write and amend commits or stash changes
  • Merge & Rebase
  • Resolve conflicts when merging and rebasing
  • Fetch/Push/Pull
  • Manage branches
  • CLOC (Count Lines of Code)
  • Contributors list for repositories (WIP)
  • Highlight Conventional Commit tags
  • Select from three configurations: Merge Commits, Squash & Rebase, or Rebase Everything. Setting changes actions available in context menu.
  • Cherry pick commits
  • Add, remove, push tags
  • Manage remotes
  • Quickly set author information in git config per repo

Building from Source / Development

Linux Dependencies

Dependency Package Install
gcc build-essential package manager
Go 1.21 golang-1.21 package manager
Docker docker.io package manager
libgtk-3 libgtk-3-dev package manager
libwebkit libwebkit2gtk-4.0-dev package manager
pkg-config pkg-config package manager
Node.js/npm nodejs package manager / nvm

macOS Dependencies

Dependency Package Install
Xcode xcode Apple
Xcode cli tools xcode xcode-select --install
Docker docker.io Homebrew / Docker
Go 1.21 golang-1.21 Homebrew / go.dev
libgtk-3 libgtk-3-dev Homebrew
libwebkit libwebkit2gtk-4.0-dev Homebrew
Node.js/npm nodejs Homebrew / nvm

Windows Dependencies

Dependency Package Install
Docker Docker winget / Docker
Go 1.21 GoLang/Go winget / go.dev
NSIS NSIS/NSIS winget / NSIS
WebView2 Microsoft/EdgeWebView2Runtime winget / Microsoft
Node.js/npm nodejs nvm

Building

To build for your current platform, run from the ivy-git source directory:

make
make install

Details

make will first install all Go and npm dependencies via make deps, including Wails. It will then call make build and build for your current system.

To build for a specific OS other than your own, you can run make linux, make darwin, or make windows. To build for Windows, builds, you'll need the additional nsis dependency.

Linux

make install will copy the binary to /usr/bin/ivy-git, additional files to /etc/ivy-git/*, and a .desktop file to /usr/share/applications/.

macOS

make will generate a universal app that should work on both x64 and amd (M1) chips. make install will create a pkg file that will install the app appropriately.

Windows

make install will create both a zip file and an installer. If you have issues running make install on Windows, make sure Powershell is accessible from the shell you are using. Be aware: Running install from WSL will, as you might expect, build and install for Linux, not Windows.

Troubleshooting

If you're having trouble getting Wails properly installed, see the Wails Getting Started guide.

To check dependencies listed above, run wails doctor after installing Wails.

Node dependencies, including Svelte and Typescript, will be installed as a part of the build process. If you wish/need to manually install, you can run npm ci from the /frontend directory.

Running in Development Mode

To run in live development mode, run ./run-dev.sh. Via this script, the garbage collector will be configured correctly and debug mode enabled.

Alternatively, set the following environment variables and run wails dev.

Go Garbage Collector

In order for the garbage collector to run correctly, the following to environment variables must be set:

GOGC=100
GOMEMLIMIT=1000MiB

Debug Mode

To run in debug mode, set the following two environment variables:

IVY_GIT_DEBUG=true
GODEBUG=gctrace=1

ivy-git's People

Contributors

reiniiriarios avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

pafthang

ivy-git's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.