
Guitar – Git GUI Client - app4soft
https://github.com/soramimi/Guitar
======
hestefisk
I think the author should be applauded for developing a native application
instead of yet another electron app. Having a gui for version control is very
useful, especially for working out branches, merging etc. The edge cases can
always be handled from CLI. For reference, I worked on Perforce for many years
and having P4Win instead of the p4 command line was a godsend for most cases
because of the hugely complex underlying tool chain.

~~~
karimmaassen
Out of curiosity, why do you prefer a native app over an electron app?

~~~
rumanator
I don't understand how this sort of question gets pummeled with downvotes.
Having developed Qt and XAML applications, I have to say that the DOM approach
makes a lot more sense than wrestling loosely bundles of widgets. In the end
Qt apps end up with a widget tree, but the path that they take to get there is
convoluted and packed with unnecessary fusion of UI responsibilities and data
and even business logic.

~~~
mehrdadn
I don't think end users decide which GUIs they like based on their "DOM
approach" any more than they decide what milk they like based on the milking
approach.

~~~
rumanator
I'm pretty sure that users like good software with pretty GUIs that are easy
to use and navigate around and extend.

DOM-based frameworks make this sort of stuff trivially to implement, and some
of them evem come with gesture and animation support out-of-the-box.
Meanwhile, feel free to take a look at Guitar's source tree to figure out if
that is trivial to work with, and at best it looks like an app from 1998.

~~~
BubRoss
Qt and widget based programs are absolutely not difficult to make. I don't
know where this comes from. They are fast and responsive by default instead of
laggy and sluggish on a many core xeon loaded with ram. Even using PyQt and
embedding python is like a feather compared to electron and that approach is
extra easy.

~~~
solarkraft
But that's not really the point. How easy is it to make great UIs with them?

How easily can you make a staggered fade and slide in animation? Responsively
change layout? Apply complex styles?

~~~
vijaybritto
That's a good question but what's the point of all this if no one can use the
app if they don't have a minimum of 8gb ram? My wife couldn't run Spotify,
slack at the same time cause her machine started swapping.

The developer experience is vastly superior in electron and it's reach is
massive. There's no denying. But the underlying problems are pretty serious
and the people who complain are not just hating for random reasons.

I hope you get how insane it is when your cpu fan starts spinning because of
an app that plays music in the background!

So far the pro electron arguments are concerned only about developer
experience who generally have beefier specs in their machines.

The lowest common denominator in end user machines are very different and I
request you please keep that in mind!

P.S: I'm a web developer and I fully understand how much valuable electron is
for me.

~~~
rumanator
> That's a good question but what's the point of all this if no one can use
> the app if they don't have a minimum of 8gb ram?

Even vscode, which has a gigantic memory footprint due to its plugin system,
requires 1GB to run comfortably.

Nowadays you get computers with 4GB of RAM for 60€.

Let's not bother ourselves with irrelevant details.

~~~
nocman
It's _completely_ relevant. People run more than one application on their
desktop computers.

Regardless of what many people say, RAM usage still matters. If every app
takes a giant chunk of RAM just to get started ( which many do ) eventually
that's going to bite you.

Yes, we do have a ton more resources to work with than we used to, but I'm
afraid far too many developers have just stopped caring about it at all -- and
that's a very bad thing.

~~~
rumanator
> It's completely relevant. People run more than one application on their
> desktop computers.

That's great, so that must mean you'll be happy to hear that right now I have
two instances of vscodium open, each one running half a dozen plugins, and
their total memory footprint is less than 300MB.

Do you have anything relevant to say regarding how much resources are used? Or
are we supposed to keep debating if being able to run 40x instances of a text
editor is not enough room to work with, or if whether having only 7.8GB of RAM
free to run other programs is too restrictive?

------
unwind
Being a dad and highly prone to excessive punning if given half a chance, it
almost hurts that this is not a GUI for tar.

As a developer I love good GUIs and should check this out.

~~~
aitchnyu
It exists and was active till 2013 cwww.edenwaith.com/products/guitar/

~~~
xenonite
If some likes to push a homebrew cask package for it, here is a possible
source:

    
    
      cask 'gui-tar' do
        version '1.2.4'
        sha256 'e11177b99a01d5cff666f68072fd2145cccda4678a8a98203d97929cbe53dea2'
    
        url "http://www.edenwaith.com/downloads/guitar.dmg"
        name 'GUI Tar'
        homepage 'http://www.edenwaith.com/products/guitar/'
    
        app 'GUI Tar.app'
      end

------
thealistra
I don't like GUI git tools as they always have issues with edge cases. git is
a complicated system and you can have multiple weird configurations in your
repo/system.

Most of the GUI tools just focus on the MVP workflow and often they crash/bug
out on the weird cases.

This is not really an argument against it, but just an observation I made
through the years.

Sourcetree is one of the oldest GUI git clients and it has the most stuff
handled correctly, and this basically looks like open-source source tree.

~~~
jon889
I really want a hybrid command line/gui git client. Either a GUI app with a
terminal front and centre, or a command line tool that has some commands to
use UI style things.

I hacked together a bash script that prints out all the branches and lets you
click on it to switch to it and it's been pretty useful, just wish I could be
bothered to make it properly with more features.

~~~
enturn
GitExtensions includes a terminal and shows the commands it runs and I
recently discovered the GitGraph extension in VSCode which allows having a
terminal open at the same time. There's more text focused ones like Magit or
Tig, I haven't used them personally but from reading the manual of Magit it
looks like it can [1] and Tig allows for setting up custom commands [2].

1\. [https://magit.vc/manual/magit/Running-Git-
Manually.html](https://magit.vc/manual/magit/Running-Git-Manually.html)

2\. [http://jonas.nitro.dk/tig/manual.html#external-
commands](http://jonas.nitro.dk/tig/manual.html#external-commands)

------
kgraves
As an alternative I highly recommend Fork, a life/time saver when working in
Windows, it's a high quality (and native) Git GUI client.

Guitar is also good too, and are thankfully both native!

[0] Fork - [https://fork.dev](https://fork.dev)

~~~
sam_goody
Fork is closed source, and costs $50.

It is nagware - will work forever but with a nag screen (like WinZip back in
the day), and IMO it is definitely worth a one time fee of $50 if you don't
mind using closed source.

But it is not quite the same category as Guitar.

~~~
andreasley
I actually didn't know that Fork can be bought! I installed a Beta version a
while back, upgraded regularly and never have been shown a nag screen. Gladly
paid for my license a few minutes ago.

~~~
favorited
Fork is one of the few pieces of software I used in beta where I thought,
"You're not asking for money right now, but you seriously need to let me pay
you for this."

------
sdan
Sublime Merge is this but... sublime:
[https://www.sublimemerge.com/](https://www.sublimemerge.com/) it's amazing
and pretty similar

~~~
aniforprez
I've found sublime to be not so sublime. It beats everything in terms of speed
but I'm not a fan of the design and it's woefully lacking in customisation and
doesn't support a lot of the git options. On Linux it's my only choice for a
good GUI but on mac and windows I much prefer fork.dev which is almost as fast
and is very feature rich and looks great

~~~
sdan
> fork.dev

That looks cool! Personally I love the simplicity of both Sublime Text and
Merge so I gravitate towards those (I don't really care/need about
customization)

~~~
aniforprez
I was doing a trial run of git GUIs cause I'm much more productive with one
and I landed on Sublime which was good but lacked a lot of options and I don't
think still allows for adding custom commands. I was also extremely miffed
when it took months for an update to come out to fix one bug I'd found and was
irritating me to no end (I forget the specifics now). For me the update cycle
is also extremely slow and the price is prohibitive.

I wish I liked it more but I've settled on fork now. Good you're happy with
sublime. I'll check it out again once it's rounded off with more features

------
edu
I'm still using GitX-dev[0], mostly for doing commits and visualizing
branches. Although lately I've been committing directly from Visual Studio
Code.

For more complex operations nothing beats the CLI.

[0] [https://rowanj.github.io/gitx/](https://rowanj.github.io/gitx/)

~~~
dilap
> For more complex operations nothing beats the CLI.

I think that's only because most of the UIs are so bad! Manipulating a graph
is something that I think inherently is actually quite visual.

GitUp[0] has excellent graph-editing facilities, and has replaced almost all
of my git command-line machinations.

Alas, it's semi-abandoned and left in a perpetual state of 90% doneness...

A little challenge, if you're interested: Give some git manipulations you
would do on the command line, and I will show you how to do it more easily in
GitUp, or concede defeat. :-)

[0] [https://github.com/git-up/GitUp](https://github.com/git-up/GitUp)

~~~
dilap
No takers? :-)

------
talkingtab
I have started using lazygit, a CUI, or console user interface. It runs in my
terminal window but gives me the same broader perspective a GUI does. Looking
at the screenshots of Guitar, which look amazing, I realize with lazygit I get
95% of the benefit of a GUI but in a package that does not disturb my
workflow.

[https://github.com/jesseduffield/lazygit](https://github.com/jesseduffield/lazygit)

There are edge cases that lazygit does not handle well, but it is a simple
matter to type "q", bop back to the terminal and run whatever git command and
get on with life.

~~~
tomaspollak
Which cases does lazygit not handle well? Asking because I'm working on
something similar, although probably simpler and with less features [0].

[0] [https://tomas.github.io/jix](https://tomas.github.io/jix)

~~~
talkingtab
When I think about the situations where I don't use lazygit, it is when I am
unsure of what I am doing and therefore unsure what lazygit is doing. Almost
everything I normally do with git, I can do with lazygit, but there are things
I am not confident about. Squashing commits versus picking and do they go up
or down, etc? Rebasing. I tend to go to command-line git in those cases, not
because lazygit does not handle them but because I don't. :-)

The crucial advantage of lazygit for me is the "situational awareness" I gain
in one window - more than any added functionality. The other take away is for
your tools to be utterly trustworthy. :-)

~~~
tomaspollak
Gotcha, thanks.

------
arkanciscan
I--for one--love a GUI. Especially for git. I also love a good pun, so I'm
definitely going to try this! It's gonna be tough to beat VS-Code and Kraken
though.

~~~
fruffy
GitKraken has been a godsend, I have been really spoiled by it. Managing big
repositories has become a breeze thanks to the visualization techniques it
uses. If only the company behind it weren't so questionable about their
privacy and monetization policies. I am still on the fence on the product.

~~~
JTenerife
What issues are there with the privacy policies? Did I miss something?

~~~
fruffy
The founder has some controversial views on how to develop the product, this
includes more cloud integration.

[https://old.reddit.com/r/git/comments/59j0yq/gitkraken_is_no...](https://old.reddit.com/r/git/comments/59j0yq/gitkraken_is_no_longer_free_freak_out_or_dont/)

On top of that GitKraken is closed-source and in the past there were concerns
on telemetry collection:
[https://old.reddit.com/r/git/comments/4dgpgd/gitkraken_data_...](https://old.reddit.com/r/git/comments/4dgpgd/gitkraken_data_kraken_yet_another_application/)

Nothing major, which is why I am still using it, but definitely enough to make
you wary.

------
Jnr
From all the git GUI tools I like VS Code the most. I know it is IDE, but it
is very fast, free, open source, multi-platform, and has amazing plugins for
most use cases.

Other than that, most frequently I use CLI.

~~~
csunbird
I also find IntelliJ embedded git client to do wonders too.

------
v-yadli
Why isn't this name used for a tar gui frontend? :p

~~~
techbio
I love it. But we’ve got

    
    
        man tar

------
isatty
Thank you to the author for making a native application.

------
wrechen
I've been using Tower (on Mac) for a long time and I'm happy with it. It's
also free now if you are a student: [https://www.git-
tower.com/students](https://www.git-tower.com/students)

~~~
chappi42
And if you are not a student it's a subscription: _every year_ you'll pay up
69 or 99 €, "access to Tower ends when the most recently paid-up subscription
period ends."

Not so great... (they switched to subscription some years ago, adios amigos!)

~~~
cytzol
Tower is quite literally the only application I'm willing to pay subscription
pricing for. It's quality software, doesn't hold my data hostage, and has a
steady stream of updates. I'm as _adios amigos_ as you, but I don't think the
usual reasons apply here.

------
FpUser
Nice tool, will be testing it. Thanks for your hard work

------
platz
Still haven't found anything better than gitk

~~~
steelbird
That is nice. [https://git-scm.com/docs/gitk](https://git-scm.com/docs/gitk)

------
ataylor32
Based on one of the screenshots, it looks like Guitar doesn't support word
diffing. Sourcetree lacks word diffing as well and has had an issue about it
since 2012:
[https://jira.atlassian.com/browse/SRCTREE-888](https://jira.atlassian.com/browse/SRCTREE-888)

~~~
aarbor989
Which GUI clients that you know of do support word diffing?

~~~
ataylor32
Fork ([https://git-fork.com/](https://git-fork.com/))

~~~
aarbor989
I have Fork, but I don't see any word diffing functionality, unless you are
just referring to an additional highlight on the changed word(s)

~~~
ataylor32
Yes, that's what I'm referring to.

You can see it in Fork's screenshot: [https://git-
fork.com/images/diffViewer.jpg](https://git-fork.com/images/diffViewer.jpg)

But if you look at Guitar's, you'll see the lack of word diffing, and that
makes it take significantly longer to see exactly what changed:
[https://camo.githubusercontent.com/3c6c338ece93afda723cef575...](https://camo.githubusercontent.com/3c6c338ece93afda723cef575c0c8004502bb758/68747470733a2f2f736f72616d696d692e6769746875622e696f2f4775697461722f68746d6c2f73637265656e73686f74732f6d61636f732e706e67)

~~~
app4soft
Already requested for _Guitar_. Follow this issue thread.[0]

[0]
[https://github.com/soramimi/Guitar/issues/76](https://github.com/soramimi/Guitar/issues/76)

~~~
ataylor32
Thanks!

------
doublerabbit
Haiku is a nice welcome.

~~~
badsectoracula
Though IMO using Qt for its GUI instead of the native lightweight Haiku ones
is missing the point of Haiku a bit.

------
_hao
Cool effort and props for the native app, but I've been using GitKraken for
over 2 years now. I know all the console commands I'll need because I've used
them for so long, but I can't be bothered with them anymore. GUI and merge
editor is so nice to have.

------
alexeiz
I never really felt a need to use a GUI client for Git. I think they all
hinder understanding of Git instead of helping. However I use Tig (console
client) extensively for read-only Git operations. For everything else, there
is Magit (Emacs Git client).

------
sam_goody
OT

Is there a way to connect Guitar to a remote server.

Or, are there other Git GUI's that work over SSH?

I can use VSCode, but it is not really a Git GUI, and doesn't satisfy my
needs.

~~~
ilogik
depending on your OS, there are ways to mount a remote ssh location locally,
which means that you can use any GUI you want (but it will be slow).

for example:
[https://www.redhat.com/sysadmin/sshfs](https://www.redhat.com/sysadmin/sshfs)

------
rk06
is there any comparison to existing git clients? I am currently happy with git
extensions and KDiff (for resolving conflicts)

------
hans_castorp
Sadly no (portable) ZIP package for Windows :(

~~~
app4soft
If you really need it — create feature request.[0]

FTR, Actually installers for Windows available only for Win32[1], so you may
want request Win64 builds too.

[0]
[https://github.com/soramimi/Guitar/issues](https://github.com/soramimi/Guitar/issues)

[1] [https://files.soramimi.jp/guitar/](https://files.soramimi.jp/guitar/)

------
gerdesj
aur/guitar-git. Just used it to grab its own source from Github. Love it. This
stays.

------
jtms
Just use the cli - it’s faster and more productive

