
Fork: A fast and friendly Git client for Mac and Windows - archagon
https://fork.dev
======
MarkSweep
The license prohibits all kinds of things so I am not comfortable using it:
[https://fork.dev/license](https://fork.dev/license)

Specifically, it says:

* "You will not use this Software to engage in or allow others to engage in any illegal activity.": Which jurisdiction? how far do I have to go to prevent illegal activity?

* "You will not engage in using this Software that will interfere with or damage the operation of the services of any third parties[...]" How is this defined? How quickly can I push the "git pull" button before I violate this term?

* "You will not use this Software to engage in any activity that will violate the rights of third parties, including, without limitation, [...]" again, which jurisdiction?

~~~
mikekchar
I can answer one of your questions: "This agreement shall be governed by the
laws of Czeck Republic. If any portion of this Agreement is deemed
unenforceable by a court of competent jurisdiction, it shall not affect the
forcibility of the other portions of this Agreement."

Though, this license is pretty much radioactive for me: "You will not, and
will not permit others to reverse engineer, decompile, disassemble, derive the
source code of, modify, or create derivative works from this Software..."

Fair enough if you want to use whatever license you want to use, but
definitely a "no thanks" from me...

~~~
intea
A closed source git client, that's almost an oxymoron.

~~~
wodenokoto
No it isn't.

Git kraken, sublime merge, sourcetree. It is pretty common among the most
famous ones, just look at the list on wikipedia,
[https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs](https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs)

------
afarrell
Alongside a donation link, you should put a "purchase a license" or "purchase
a subscription" link. That way, an engineer can upload the resulting receipt
to expensify and get reimbursed by their employer.

Employers are used to paying for software licenses out of engineering budgets;
Donations would generally come out of a different budget managed by someone an
engineer doesn't work with day-to-day.

~~~
SyneRyder
Another +1 for them adding a price to this. It's a really good program and
even as a solo indie developer, I want to give them money so they can afford
to keep working on it. Customer support takes time too, I've already emailed
them about one bug & used up some minutes of the developer's time.

Preferably not a subscription, though. The whole reason I started using Fork
is because their competitor Tower switched to a subscription model, so I
started looking for competitors. The Fork developers seem keen on keeping it
free, so maybe something like the Sublime Text / REAPER model where it has a
nag screen on startup but will keep working anyway (useful for us indie
developers until the money rolls in). I also like the idea of no internet-
based licensing, so if the company ever disappears I can still use the
software.

~~~
cyphar
I think the point is that it should remain a free project but put an
artificial "price" instead of a donation link. This is similar to what SQLite
does (offering a $1000 license, where you're basically paying for a piece of
paper saying "no really, you can use this freely").

~~~
Tomte
Plus the phone number of a developer, with a response 24/7, I think.

~~~
jakear
Support is actually an entirely different (and much more expensive) concept.
Business Hours phone support starts at 8k, but 24/7 phone support costs as
much as 85k/year.

[https://sqlite.org/prosupport.html](https://sqlite.org/prosupport.html)

------
rsp1984
On the plus side I find Fork to be performant and clean. I prefer it over
Kraken and Tower and I find it vastly better than SourceTree. I also find it
somewhat similar to GitX-dev on the Mac, which is a good thing.

On the minus side (and it's a big minus), it's not open source. As a developer
of commercial software I basically have to trust the Fork developers not to do
anything fishy with all the source code / IP that I am opening up to the app.

~~~
duchenne
It is very disappointing that in 2019 we still have to rely on trusting a
software vendor or reading the app souce code if it is available. That would
be great to we have an OS-level system to give fine-grained permissions and
restrictions to desktop apps, like on lineageOS?

~~~
Godel_unicode
How would fine grain permissions solve the problem of software doing something
fishy with the code you give it access to?

~~~
brassattax
White list for network access?

------
Kipters
It looks like it's a WPF app on Windows and a Cocoa app (via Xamarin.Mac) on
macOS. It feels good to not try something based on Electron for once.

~~~
lostmsu
I wonder if they used a cross platform library abstracting the two.

~~~
Kipters
It looks like I was wrong: the macOS version has lots of Swift frameworks
inside of it and no hints of Xamarin, they appear to be two completely
separate apps

~~~
rvz
So essentially: Mac app written with Cocoa/ObjC/Swift and the Windows app
written with C# and WPF. A great example of native software.

I'd prefer something like Fork over something like GitKraken IMHO. I cannot
imagine the performance of some electron alternatives if I were to open a
repository with 200k commits, but this can be resolved with shallow cloning.

Even if it has lots of Swift frameworks embedded, as soon as they switch to
Swift 5 and Mojave and higher, Swift will become built in with no dylibs.

~~~
Kipters
To be clear, I was interpreting the abundance of Swift frameworks as proof of
it being written in Swift, not as something bad (a ton of Swift frameworks is
still a lot better than Chromium + node + a ton of npm packages)

I'm curious why they didn't use Xamarin.Mac though, they could have shared a
lot of code between apps.

~~~
dean177
The Mac version came first and later they decided to port it to windows.

------
groundCode
As someone pretty comfortable with got on the command line, what advantages
would a GUI give me? I’m not trolling, it’s an honest question. Anyone with
good got command line skills move to something like this and find it offers
them a better workflow?

~~~
machiaweliczny
Better code review than git diff, easy to commit only subset and faster way to
view all changes in commits. I'm using GitUp and it's really good although not
maintained anymore.

~~~
thomasjonas
Are you sure it's not maintained anymore? There is still activity on the
GitHub repository. Just no new versions?

~~~
ChristianGeek
There’s activity, but no new releases in a year and a pull request that’s been
sitting for a year.

------
lioeters
Happy user of Fork here. I switched a few months ago from SourceTree, as it
was getting laggy due to having a large number of repos.

Fork is a performant Git GUI client, well-designed with most practical
features you could want. It's a native app written separately for macOS and
Windows - though they might use their own cross-platform library, I seem to
recall reading about it.

Anyway, it's excellent software, I'm willing to pay to support development.

------
archagon
Not my work, but this is one of the most impressive Git clients I've
extensively used — and it's free. Tons of features, lots of thought put into
usability, and fully native. If this were a $50 product, I'd happily pay it,
but there's not even a donation link.

Just wanted to share!

~~~
figiel
Is it more impressive than the git command line client? What does it do
better?

~~~
KuhlMensch
DISCLAIMER: Obviously some git tasks are just the wrong fit for a GUI, and
some git tasks are just not possible.

I've not used Fork but I find SourceTree (which looks very similar) MUCH
quicker to search for, and build commits from, hunks. I mean perhaps if I
really invested in the git tool I could get my speed up, but I don't see the
point - I have what I need already in SourceTree.

More generally the tree-structure of the git filesystem often lends itself to
persistent visualisations e.g. split view graph + branches. Especially when
fetching, and the graph automatically re-renders and shows you an unexpected
structure.

If we are talking about vanilla git - GUIs can be a nice drop in to speed up
commit work flows like "checkout that commit I was working approx a dozen
commits ago". Being able visually-grep, and then double-click is a bit faster
than `git log --pretty=oneline; git checkout SHA"`

And finally, and they are a great on-boarding wrapper for users who are new to
git. I've had good success unblocking users with very little git experience
who are only using a git CLI, by introducing a git GUI. This really flattens
out the learning curve, which frees up both devs to concentrate on the
_actual_ task at hand.

------
tarasmatsyk
I've discovered Fork by looking at my teammate's screen :D

I am very skeptical about any git UI especially anything out of my IDE as
switching windows distracts me.

However, after trying it a bit:

\- it works and looks much better than SourceTree, GitKraken

\- it's free (while I would prefer using a Sublime license model if asked)

\- it has GitFlow integration (not a big fan of it, however it gives you a git
workflow template out of the box, worth checking)

Thank you, Dan and Tanya, for the hard work!

------
cr0sh
Ok - I haven't read all the comments here; maybe it's been asked and answered,
but I'm going to ask anyhow:

Is there something like this available for Linux? Even if you have to pay for
it?

IntelliJ covers most use cases, and I already pay for that, but I have been
wanting to move away from it, and I am one of those few who do not like to use
the cli much for git, unless there's no other choice (sometimes, that's the
case). I honestly don't know why such a tool doesn't seem to exist.

Parts of it do exist (or did - not sure about their active state) - but one
tool will have one piece, but lack others; and that holds for every tool I've
seen so far. One tool or another will lack that one needed piece - back to the
command line for it; sigh.

It is strange, because as a whole, all the pieces seem like they are there -
but for some reason, nobody has taken the time to combine them all. Probably
for the same reason why I haven't done it myself: It isn't that interesting, I
suppose.

~~~
justsid
Not Fork, but I just love Sublime Merge. It runs natively on all major OSs and
is insanely fast. Plus I can’t go back from that search function, it’s just
too good. Might be worth a try?

------
rado
Thanks for ridding me of GitHub Desktop’s Electron bloat on Mac. Native apps,
please come back.

------
4di
Fork is awesome. I've been using Windows for the past year for a project and
missed GitUp on Mac.

After trying a few clients (Tower, SourceTree, Kraken, and a few others) I
stayed with Fork - very fast, performant, and intuitive. Right now I have
about 15 repo tabs open in Fork with a large number of branches in each. The
tree view is excellent (I actually liked the older one-line-per-entry
version).

Fork recently added the ability to compare branches - literally click two
times to get a diff within half a second.

I really can't believe this app is free. Well done to the makers of this
excellent app!

------
SenHeng
For Mac users, nothing beats GitUp[0]

0: [https://gitup.co](https://gitup.co)

~~~
amiantos
I use GitUp as my primary git client, but I switch to Fork to handle
complicated rebasing. Fork’s “interactive rebase” tool is fantastic, if GitUp
had it I’d never need to switch away. I actually registered a HN account just
to say this about Fork, it’s that helpful to me.

------
goblin89
I’ll compare Fork with GitUp ([https://gitup.co](https://gitup.co)) on macOS.

A big advantage of Fork is a better merging experience. Personally, I use
GitUp in conjunction with CLI when I do rebases, which implies higher mental
overhead.

Overall, Fork’s UI feels a fair bit slower to use compared to GitUp, both in
terms of raw performance and design. For example, after selecting a commit,
details take about half a second to load in the bottom pane, and expanding a
diff from there takes a precision click. (The Changes subpane offers another
diff view, but it requires to select a single changed file first and takes a
half-second until file’s diff appears.)

GitUp is blazing-fast, has very focused UI, and further speeds up your
workflow with well-thought keyboard shortcuts that cover pretty much all
available functionality.

Platform integrations in Fork might make sense to someone, though to me it’s a
concern. It supports GitHub and Bitbucket—what about Gitlab? Unless you
monetize, I doubt you can integrate with everything, maintain each integration
as their APIs evolve, and still spare enough effort on improving the core UI.

~~~
UIZealot
Both seem to work pretty well, if only I could actually use them. My aging
eyes just can't deal with all the gray text on a white background in Fork, or
the tiny text in GitUp. Sigh!

~~~
strogonoff
Someone is currently maintaining a fork of GitUp that adds a text size slider
in preferences.

On the other hand, maintainer’s response is a bit disheartening suggesting
they have not (yet) encountered the eyesight issue themselves.

See this feature request: [https://github.com/git-
up/GitUp/issues/470](https://github.com/git-up/GitUp/issues/470)

~~~
UIZealot
Thanks for the link! Disheartening indeed. Found the fork at the end of that
thread, and I'll give it a try.

------
nichos
I love git extensions [0]. It's definitely not as pretty, but it's open source
and very powerful. Development is very active too. Devs is happy to take PRs.

[0] [https://gitextensions.github.io/](https://gitextensions.github.io/)

------
bdreadz
Highly recommend. Switched after another developer at my office mentioned it.
I suggested the filter active branch hot key and it was added I believe in
less than a week. Comes out of the box with a great dark mode. The way you can
view the commits diffs in the program is wonderful as well. It's the one thing
I didn't like about git kraken. Which I even had suggested that they add a
different view for that and I would have purchased for my whole team.

Take a look at this one. The ability to jump between branches is great with
command B.

Keep up the good work. Like people have already mention please make a donate
button as I'll gladly donate to encourage the continued work.

------
josteink
Quick feedback to whoever maintains the web-page.

I'm looking at the introduction, the screenshots and all looks nice. Then at
the bottom of the screen I get the text "Download Fork for Mac", and nothing
else. No Windows-download.

Had the headline on HN not been explicit about there being a Windows-version,
I wouldn't have gone looking... And therefore not found the tiny "For for
Windows" navigation item on top of the page. I would have assume this was Mac
only and left.

Any reason you different pages, and particularly why you don't show both
download links on the bottom of the screen?

I'm pretty sure you're at risk of missing 99% of the potential Windows-users
skimming by this page.

~~~
ukyrgf
It's definitely Mac-centric. Mac in all the screenshots. Mac link in the menu
has a blue border to make it stand out and the Windows one doesn't. Like you
said, the bottom of the homepage is a link to download the Mac version.
Release notes are all for Mac, no Windows. The blog talks about "Fork", which
is a Mac app, and then a separate "Fork for Windows".

------
nailer
I moved to Fork from Sourcetree a few weeks ago.

\- This really is much faster than SourceTree (I have a surface Go and CPU is
important to me). My entire machine feels faster. It's entirely possible this
is due to ST doing a whole bunch of unnecessary work rather than Fork being
good though.

\- Unlike Tower (and like ST) it has a separate staging area

Didn't try anything else asides from ST, Tower and Fork because the rest don't
even seem to be capable of interactive rebase, which is essential for a good
commit history.

------
jlis
I use Fork on work and also private. Great software. One of the main reasons
to switch is the merge/conflict view, which is, at least in my opinion, one of
the best out there.

Previously I've used Sourcetree and SmartGit, and even some Git integration in
PHPStorm/WebStorm. But for now, Fork is just lit.

If I could I just wish for one thing: mark branches which are only local and
have no remote, so you can easily purge old branches after they're merged.

~~~
jmiserez
> _mark branches which are only local and have no remote, so you can easily
> purge old branches after they 're merged._
    
    
      git fetch --prune
    

EDIT: Then you can see which ones don't exist on the remote

    
    
      git branch -v
    

which will show [gone] if it's a tracked branch but the corresponding upstream
branch isn't there anymore. Use -vv to show the upstream branch names as well.

See:

\- [https://git-scm.com/docs/git-fetch#_pruning](https://git-scm.com/docs/git-
fetch#_pruning)

\- [https://git-scm.com/docs/git-fetch](https://git-scm.com/docs/git-fetch)

~~~
uasi
git fetch --prune removes stale remote-tracking references, not local
branches.

~~~
jmiserez
You are right. I've updated my comment above and added a second step which
shows which branches can be removed.

------
Tiktaalik
As a game industry git newbie that was used to the Perforce client for
managing versioning and visualizing changes, this app has been a huge blessing
to me.

------
bbbobbb
Looks nice and clean, although useless for me as a Linux user.

The one thing I use graphical git client for is resolving merge issues, so
something lightweight is nice. Currently I just do it in IntelliJ and hope I
already have the project opened.

As a side note, I guess the images on the website are fairly small, but they
pay for it with tons of jpeg artifacts which does not look clean.

~~~
dmortin
> Looks nice and clean, although useless for me as a Linux user.

That's why Electron GUIs are good. People say they are bloated, but at least
the program is available for Linux as well.

~~~
stephenr
So we’re all forced to use shit apps? No thanks.

I imagine the number of Linux desktop using developers who use git and want a
git GUI is numbering in the hundreds, worldwide.

~~~
alexeiz
> numbering in the hundreds

So like 50% of total Linux desktop users? Haha, just kidding. I, for myself,
use tig and git command line and I'm pretty happy with it.

------
pjtr
Why do merge tools pretend that "their" and "our" or "remote" and "local" are
good labels? Can they not show the commit message and hash? Nowadays with
history editing often both sides are local and mine.

~~~
jmiserez
Did you see the screenshots? Looks like it shows the branches at least.

~~~
pjtr
I did see the screenshots. That's what triggered my comment. I did not see any
branch names. Now I see "nh-scroll-fix" and "origin/fix-simulate-na..." in the
conflict dialog, but not in the merge dialog. Branch names seem insufficient
anyway though, but it would be a slight improvement I guess.

------
somada141
Just downloaded it cause SourceTree has been getting slower and more
temperamental over time. Seems fantastic and very fast thus far, I'll be
testing it more extensively over the coming weeks and might well switch to
this. Beautiful work!

~~~
somada141
Also would love a GitFlow integration like the one you get in SourceTree [1]
or Tower [2].

[1] [https://blog.sourcetreeapp.com/2012/08/01/smart-branching-
wi...](https://blog.sourcetreeapp.com/2012/08/01/smart-branching-with-
sourcetree-and-git-flow/) [2] [https://www.git-
tower.com/help/win/integration/git-flow](https://www.git-
tower.com/help/win/integration/git-flow)

------
gabrielizaias
Does is support signing commits? I can't tell form the website.

I usually go for the command line and only reach for a GUI if I made a lot of
changes that should be committed separately and Github Desktop doesn't work
with signed commits at all.

------
luxuryballs
I’ve been using this after quitting SourceTree due to so many issues I had
with handling authentication, especially with Azure DevOps.

Now I prefer the Fork interface, it seems to be more functional for things I
often need to do during dev work.

------
abc_lisper
Yeah, please put a donation link. I would happily pay if I enjoy using it

------
childintime
Bug report: for some reason I initially could not get past the initial "User
information" screen.

I suspect it may have had to do with the "full name" field, does it perhaps
require a space? When I typed with a space on the 2nd try, Finish was enabled.
When I then went back and removed the space, it continued enabled.

Anyway, I was left with confusion about "username", and I preferred to go with
a nick, however that wish was apparently not respected, and why that was was
not clarified.

------
mstaoru
Is there such thing as "remote git"? As someone who gave up trying to run
Docker under WSL, returning to the warm embrace of Linux on VMWare, I tried
most git clients and found them not usable over neither Samba nor NFS share.
Console git pseudo-GUIs are pretty good now (lazygit is my workhorse), but I
miss the ability to easily scroll around.

If a client could support SSH-based workflow with remote git execution, that
would solve it for me.

~~~
Const-me
When I develop for arm Linux, I use local git on Windows PC. I share that
folder with CIFS, mount on Linux, build and run my stuff from the mounted
directory. As a nice side effect, the disk speed is much faster, the PC has
fast SSD, target device uses much slower SD card for the system drive.

------
radicalriddler
From a brief use, it looks good, definitely a lot faster than something like
Gitkraken. I'll be happy to see where you guys take this project.

------
ebr4him
10/10 Would use again.

I'm a lurker but had to comment on this. A great app that I use daily and
can't believe its free.

------
fishnchips
This is pretty awesome, thanks for working on that! At the moment I'm
struggling a bit trying to figure out how to use GPG. My Git profile is set up
to require signed commits and the website claims this is supported, but it's
at least not obvious how to do that.

------
srikz
This looks neat! It will be great to have a Linux version in the future.

I’m not too hopeful as this seems to be made native to the platforms (and very
well!) by experienced native devs. Maybe, the app becomes very popular and
there will eventually be a Linux version of such good quality.

------
MrGilbert
Hm... Looks nice so far, except for the Google Analytics call upon startup.
Would love to see an option to disable it - and you should add a privacy
policy, if you keep it in your application.

Other then that, it doesn't seem to send anything else.

~~~
cridenour
It looks like you can, under Preferences -> Updates.

~~~
ukyrgf
Ah, not an option in the Windows version. I wonder how else they differ.

------
latchkey
Just downloaded it from the link on the website and the downloaded version was
one release behind, which means an immediate ~50meg download again. Please be
considerate of people on slow/remote/expensive connections.

------
TooCleverByHalf
Does Fork support integrations with self-hosted systems like Github or Gitlab?

------
hrbf
BTW, could we all please stop creating Electron apps and spend time to
properly code native, resource-efficient software instead of shipping a full
browser engine in every single application?

------
andreif
Previous discussion (2016):
[https://news.ycombinator.com/item?id=12382493](https://news.ycombinator.com/item?id=12382493)

------
jbigelow76
So everybody's bitching about the license aside... :) This sure looks like a
really nicely designed git client, congrats to the team on the release!

------
Spacemolte
The whole, if the product is free you are the product etc. So, how is this
free?

It really does look amazing, which is probably why I wonder how it can be
free.

~~~
somethingnot
Git is also free. So, how are you the product when you use git?

~~~
RussianCow
Git is open source and a community project; Fork is closed source and
developed by two people.

------
cyberferret
Problems with BitBucket? Trying to sign on to BB after downloading and keep
getting the error "Could not parse error json data".

------
pknopf
What technology is it using that prevents it from being available on Linux? I
don't like what is currently available.

~~~
leadingthenet
It’s using WPF on Windows and Cocoa on Mac. It doesn’t seem to share much code
between them, either.

------
petters
Does it run precommits that have keyboard interactions? We use that a lot and
Sublime Merge does not work.

------
duckfruit
Amazing, well crafted piece of software. I wonder how they can afford to build
and maintain it for free.

------
icodestuff
I had Fork 1.0.19. Wasn't any good back then. Just reopened and updated it.
Much better now!

------
therealdrag0
Interesting how similar it is to SourceTree, even down to having Custom
Actions.

------
earthboundkid
Once Gitbox stops working in Mac OS, I'm going to have to become Amish.

------
radres
I wish it worked on linux

------
mehrdadn
What distinguishes it from TortoiseGit on Windows?

~~~
yoz-y
Judging solely from screenshots I’d say the biggest difference is that it is
not a shell extension but a self contained program.

------
tiku
I need a nice git client for Linux..

------
wheresvic1
Why not linux? :(

