from Hacker News

Git Fork: A fast and friendly Git client for Windows and Mac

by zubspace on 5/31/22, 9:56 AM with 65 comments

  • by onetom on 5/31/22, 5:36 PM

    My choice is the VCS client in JetBrains IDEs, like IntelliJ, WebStorm, PyCharm etc.

    IntelliJ Community Edition is even free and open-source, so for Java coding it's perfect, but pretty good for Clojure, Python, PHP too.

    The JetBrains IDEs are cross-platform, including Linux and cross architecture, including ARM, because the JVM/JDK is cross-arch.

    The sticking point for me is how well it deals with the 3-way resolution of merge conflicts.

    It also has a magic-wand icon, which seems to resolve 95% of conflicts automatically and correctly, presumably doing something based on common ancestor commits.

    BUT what makes both this 3-way merge interface AND the commit interface really great, is the ability to edit in-place, with all your custom keybindings, syntax highlighting, linting and code intelligence tools!

    You can auto-complete code, look up docs or the source code of function definitions, even in JAR files, without leaving the context of the commit dialog. If you need to do something more involved, like refactoring or jump to definition, u can always get to the source code with F4 from the commit dialog or from within any commit context.

    You don't know what are you missing out on, until you experience it! It's a significant reduction in mental overhead, imho.

    Now the cost of all this convenience is that you need to download hundreds of megabytes and IntelliJ CE has a substantial startup time and memory consumption, since it indexes your code. It also sprinkles your repo with projects files under a .idea folder.

    I will check out Fork regardless, because it's good to know what's out there and what are the different set of tradeoffs it choose. Then I can choose and/or recommend it for different situations.

    It's the same reason I'm learning vc.el and magit too. If you need to do some git surgery over high-latency SSH, then it's hard to beat Emacs with TRAMP...

  • by zacwest on 5/31/22, 3:12 PM

    Fork is the only GUI in Mac performant enough to handle my work monorepo. That alone would be sufficient, but it's also a stellar client with great support for things like interactively rebasing and handling merges. I can do roughly everything I need, faster, in its UI.
  • by oerpli on 5/31/22, 6:45 PM

    I tried a few Git clients over the years and am proficient with the CLI.

    My impression is that Fork captures how git actually works better than some of the other GUI tools and it has a lot of handy features that make certain tasks a pleasure instead of a chore (common rebasing things, add/deleting/changing local/remote branches, splitting up changes in single files into multiple commits - this is maybe be an antipattern but I do it frequently enough).

    Also, it's very cheap. I hope they make enough money with it to continue development.

  • by zubspace on 5/31/22, 10:05 AM

    Our whole team works with git fork and we're really happy with it. You can browse the repo at a specific commit, branch, merge, rebase and blame everything from the gui. I rarely need to fall back to the command line and there's even the option to add custom commands to the gui. And it's really fast, even with multiple repos.

    Just had an issue today and Dan replied in less than 5 minutes. Thumbs Up

  • by kitsunesoba on 5/31/22, 4:12 PM

    Been using Fork for several years now, and it’s great. It’s exactly what I look for in a tool: capable, yet focused and fast, with everything being as it should right out of the box. It never feels like it’s getting in the way.

    I use it along with Secretive[0] to keep GitHub SSH keys in my MacBook’s Secure Enclave and add a biometric prompt whenever pushing or pulling. All together it’s extremely smooth and unfussy.

    [0]: https://github.com/maxgoedjen/secretive

  • by anaganisk on 5/31/22, 2:47 PM

    I discovered this on the day pandemic was declared, god this tool is well polished and is so great. It is closed source but that shouldn’t be a blocker, its not like every app we use is open-source and not everyone is going to take a look under the hood. I think it was a two people team(a couple) if Im not wrong. Awesome work guys!
  • by nerdjon on 5/31/22, 5:02 PM

    The UI does look really good, but I do wonder how much of the dev community uses a GUI vs just sticking in the command line?

    Personally the only GUI stuff I find useful are the features that are already part of VSCode (live showing what I have changed or doing a diff). Outside of that I generally find that any GUI for git just inevitably makes something just opaque enough that I don't really know for sure what I am about to commit or where I am pushing too. For me "git status" >> "git add XYZ" >> "git status" >> "git push" are so ingrained in my workflow that I don't get that feedback in any UI I have seen.

    I have started to dip my toes into it a bit now with the Atlassian integration that can name new branches properly... but even using that just gives me a weird disconnect with what is actually happening that it doesn't feel right. After the creation of the branch I am back to my cli.

    Maybe it is just because I live in the command line anyways (enough so that I have iTerm setup to just pop up from the bottom of my screen with a keyboard command) that I just feel more comfortable with the command line?

    I just feel like I am missing something here since I know some do rely on these tools heavily.

  • by IMTDb on 5/31/22, 4:27 PM

    Unrelated to fork itself, but I always wonder how do people implement the vertical colored lines representing branches and merges. This is present in almost all git desktop clients, and of course very useful.
  • by jdlyga on 5/31/22, 5:53 PM

    I struggled with anything besides committing or pushing when I first started using Git. People keep trying to make better GUI's to account for this, but going and in and learning how to use the command line and reading Pro Git really was the best solution. It's so much easier to work with.
  • by lioeters on 5/31/22, 10:01 PM

    I'm a paying user of Fork, it's my favorite Git GUI, I love it.

    However, it "only" supports macOS and Windows. I'm migrating to Linux for my work and home computers, so I haven't used Fork in a while, just so I can get familiar with other tools available on Linux - and, importantly, learning to do more advanced Git operations in the terminal.

    So far I still depend on a GUI, mainly VS Code's built-in Git integration and the GitGraph extension. (One of the advantages of this setup is that it also works for remote SSH editing.)

    https://github.com/mhutchie/vscode-git-graph

    Also looking at GitLens: https://www.gitkraken.com/gitlens

    ..But I sure miss using Fork. I used it everyday for the last couple years. It does everything I want to do with Git, the UI is familiar and well-designed. I whole-heartedly recommend it.

    I see the main developer @DanPristupov is on HN, maybe he'd consider supporting Linux? I totally understand if you won't, since creating the same application for two OSes must be quite difficult already, especially for a small team rather than a company.

  • by Night_Thastus on 5/31/22, 6:43 PM

    I've been looking for a new client. It really only needs a couple things:

    * Be fast

    * Let me do line-by-line staging/reverting

    * Automatically wrap commit message bodies past a given line length, and warn if titles are similarly too long.

    If it does that, I am happy.

    I've been using Git-cola, but it's slow. Every action incurs some delay, even simple ones. (Can't use VSCode for reasons)

    The problem is most of the alternatives are either subscription (eww) or quite pricey. Fork is one of the cheaper ones, been meaning to try it.

  • by skrowl on 5/31/22, 2:14 PM

    I can't imagine using a paid, closed-source git client when https://github.com/desktop/desktop and https://github.com/Murmele/Gittyup are both great.

    Maybe 10 years ago, but not now that open-source alternatives are so mature and feature-rich.

  • by chrismeller on 5/31/22, 3:27 PM

    I love Fork, it just seems to work the way I expect such a tool to behave. Also very snappy, even with large diffs.

    I do wish it were available on Linux as well.

  • by Vanit on 5/31/22, 4:26 PM

    Fork, aka the footgun git UI that repeatedly causes me to lose productive time to help junior devs unmangle their local repos.

    I usually recommend SourceTree to them, not because it's particularly amazing, but it does enough while not breaking repos (as often).

  • by robertoandred on 5/31/22, 4:33 PM

    Love Fork! Switched to it after I got sick of how slow and buggy SourceTree was.
  • by darkteflon on 5/31/22, 3:25 PM

    Does this handle LFS file-locking? Very handy for repos with lots of binaries (eg game dev), but also almost wholly unimplemented in the most popular Git GUI clients.
  • by 9erdelta on 5/31/22, 7:44 PM

    Fork is great -- except for when you try and google about it b/c at least for me, I haven't been able to differentiate my queries between the git fork operation and git Fork the UI.

    Also on my local machine, push to remote gitlab does not work reliably and I have to push via command line. Have not been able to find a solution, but also haven't done more than googling about it.

  • by bm5k on 5/31/22, 2:41 PM

    This looks neat, but I don’t see anything off hand that will pull me away from my current git tower + kaleidoscope ~rut~ workflow.

    In particular, the drag & drop rebase support in tower is very convenient. Kaleidoscope is capable of all kinds of diffing but the text conflict resolution is probably the feature that I use the most.

  • by nerdyadventurer on 6/1/22, 3:13 AM

    There is also gitui : https://github.com/extrawurst/gitui, simple command line UI for git
  • by ridiculous_fish on 5/31/22, 5:02 PM

    I'm a huge fan of Fork too! I love the speed and how Mac-native it feels. I'm comfortable with the git CLI but I still find Fork superior for many tasks, like deleting remote branches.
  • by 726D7266 on 5/31/22, 4:46 PM

    Are there big features missing from the built-in Git UI in VS Code compared to Fork?

    These pulled me away from Sourcetree, but my experience with Fork is limited to early versions (ca. 2016/17).

  • by 0xcoffee on 5/31/22, 4:21 PM

    I love this so much, I've been waiting to see if they ever have a sale, but honestly it's worth the full price.
  • by SuperSandro2000 on 5/31/22, 4:39 PM

    The obligatory use the flu comment