I used Git on the command line exclusively for many years and occasionally tried the built-in Git tools for various editors as well as GitHub Desktop, but I never felt they were a lift in usability over the CLI or very pleasant to use. That was until I tried Sublime Merge on a whim. One thing I like is how keyboard oriented most of it is, and how it maps quite closely to CLI commands. If I want to commit I open the command palette with command+p and then fuzzy-search for commit with “co…” or “cm” or whatever you like, and it brings up the suggested commands which I can select with enter. And beyond that I like the generally attractive styling which makes viewing diffs and searching commit history (command+f, fuzzy find “contents:”, type what you want to search for) pleasant. It’s also totally snappy in most cases, even with multiple tabs for repos open — the only time I’ve seen it slow down was opening Unreal Engine, and that was at least a year ago so they may have made improvements on that. I use it every day and I am quite pleased with it.
> If I want to commit I open the command palette with command+p and then fuzzy-search for commit with “co…” or “cm” or whatever you like, and it brings up the suggested commands which I can select with enter.
cm is exactly how I think of commit, but I use it as a custom command on the cli.
I use my cm command like:
cm “Small refactoring of quux and baz”
and it runs
git commit -m “Small refactoring of quux and baz”
Similarly I have other two letter commands for all of the other git operations I most frequently use. (I.e for almost all of the ones I use day to day.)
Have you tried any TUI tools? I'm super happy with tig for visualizing history, diffs, staging chunks and staged/unchanged changes. For anything else I just use the git CLI commands.
Sublime Merge is cough sublimely good at performing 3-way merges.
I don't like it as much as a generic git frontend (nothing beats the command line once you're used to it, but for 3-way merges, it's absolutely perfect and I have yet to see anything better.
Another very good tool for 3-way merges is meld, but the macOS port (where I do most of my development work on) is not very good, mostly because the GTK macOS port isn't very good.
I tried Meld for 3-way merges and while it seemed ok I prefer P4Merge. It's free, but not open source. If I'm using Jetbrains tools though, I'll always use the built in merge tool as it's the most intuitive to use in my experience.
Using Sublime Merge for over a year now after using Magit/Emacs mostly (and git command line for years before that).
What I like about Sublime Merge is its performance and the stage/unstage UI/UX is intuitive and fast backed by a competent text editor engine, similar to what I liked about Magit. Having multiple repositories open in a tab interface is also nice.
What you have to keep in mind is that Sublime Merge also includes a competent merge tool (hence the name). Sometimes we have to do more complex merges and Sublime Merge does this in an intuitive and integrated way, which would be a completely separate application in many other popular Git front-ends. Therefore the price is IMHO fair and justified. I can recommend giving it a try for a couple of weeks.
No we don't have automatic updates. The issue was that our updater did not warn customers that their license would not cover the newer version before updating, so those with more than 3 year old licenses were met with a "LICENSE UPGRADE REQUIRED" in the title bar. Sorry to those who were affected by this, the loss of trust is understandable.
We've since added that functionality to the updater. We also don't nag paying customers regardless of whether their license applies.
`git add` can be quite slow when handling large files, in large repositories, with a large index or on slow platforms. For instance this optimization in git brought the runtime of `git add .` on Windows with 200k files from 6s to 3s: https://github.com/git/git/commit/d1664e73ad96aa08735bf81d48....
100ms let alone 3s is much too long a wait, so Sublime Merge predicts the outcome of staging and presents that immediately. This made a noticeable improvement to responsiveness even on small repositories under Linux.
So, "predicts outcome", what does that even mean? I know the outcome of `git add` is... the file being added. And it has to run the command in the end anyway.
I liked Sublime Merge when I used it a few years ago, mainly because it's available on Linux. There were some things about the UI that were bugging me however. Nowadays I'm pretty happy with Fork (available for Windows & macOS).
I have been using Sublime Merge for a while now, and I find it very useful.
I am a visual and spatial type, so I find the the way the information is organised there invaluable. I know I lose points for not being an ultimate shell dweller, but the experience just does not compare.
The only downside is that sometimes you cannot be sure which commands it will execute for a given functionality, and to do more specific things you have to do them manually. I guess this is unavoidable.
> The only downside is that sometimes you cannot be sure which commands it will execute for a given functionality
I'm curious if you have a specific example of this? We've put a fair amount of effort into having the same nomenclature as git and add tooltips that contain the command itself where possible.
Same. I’ve been using it a while and I enjoy it a lot. I have to admit that I haven’t purchased it yet because $100 is hard to justify with so many perfectly good free alternatives, but if it was cheaper I definitely would.
I've been using Sublime Merge since it was first announced (and Sublime Text since ST2 I think). Absolutely love the experience. It's less a Git GUI and more just the CLI displayed in a well-designed GUI, if that makes sense. It's not reinventing anything, just making it easier to keep on top of commits and what your current changes are. What I find nice is that unlike many of the other GUI options, Sublime never hides what it's doing. Anytime you are about to run a Git command, they show you it and give you the option to customize it. And you can run manual commands at any time with their command palette.
I don't mind the Git CLI, but I don't enjoy using it. It feels like I'm doing extra work and I'm not necessarily on top of the changes I've made. But Sublime gives me that while also not straying far from the CLI. It's the best client I've come across and well worth the license I paid for it.
cm is exactly how I think of commit, but I use it as a custom command on the cli.
I use my cm command like:
cm “Small refactoring of quux and baz”
and it runs
git commit -m “Small refactoring of quux and baz”
Similarly I have other two letter commands for all of the other git operations I most frequently use. (I.e for almost all of the ones I use day to day.)
I don't like it as much as a generic git frontend (nothing beats the command line once you're used to it, but for 3-way merges, it's absolutely perfect and I have yet to see anything better.
Another very good tool for 3-way merges is meld, but the macOS port (where I do most of my development work on) is not very good, mostly because the GTK macOS port isn't very good.
Try Beyond Compare v5.
It’s not good at getting an overview of your history or blaming, but for committing and merging it is really nice
Deleted Comment
What I like about Sublime Merge is its performance and the stage/unstage UI/UX is intuitive and fast backed by a competent text editor engine, similar to what I liked about Magit. Having multiple repositories open in a tab interface is also nice.
What you have to keep in mind is that Sublime Merge also includes a competent merge tool (hence the name). Sometimes we have to do more complex merges and Sublime Merge does this in an intuitive and integrated way, which would be a completely separate application in many other popular Git front-ends. Therefore the price is IMHO fair and justified. I can recommend giving it a try for a couple of weeks.
At first I lost my trust and then I liked vsc more.
And the funny thing is at that time I was thinking about buying sublime merge, until the st4 update happend.
We've since added that functionality to the updater. We also don't nag paying customers regardless of whether their license applies.
Fast as opposed to what? What could possibly be slow here? It's just local git operations.
100ms let alone 3s is much too long a wait, so Sublime Merge predicts the outcome of staging and presents that immediately. This made a noticeable improvement to responsiveness even on small repositories under Linux.
So, "predicts outcome", what does that even mean? I know the outcome of `git add` is... the file being added. And it has to run the command in the end anyway.
I am a visual and spatial type, so I find the the way the information is organised there invaluable. I know I lose points for not being an ultimate shell dweller, but the experience just does not compare.
The only downside is that sometimes you cannot be sure which commands it will execute for a given functionality, and to do more specific things you have to do them manually. I guess this is unavoidable.
You don't lose a single point for using tools that fit your needs, no matter how much any gatekeeper says different.
I'm curious if you have a specific example of this? We've put a fair amount of effort into having the same nomenclature as git and add tooltips that contain the command itself where possible.
I don't mind the Git CLI, but I don't enjoy using it. It feels like I'm doing extra work and I'm not necessarily on top of the changes I've made. But Sublime gives me that while also not straying far from the CLI. It's the best client I've come across and well worth the license I paid for it.