Thank you for mentioning Tower! I would just like to add that Tower 9 also included many improvements around the merge/rebase experience, including an Instant Conflict Detection that should satisfy the "preview" workflow mentioned.
I work at Tower and I recently put together a "Tower versus Sourcetree" comparison page (there are many features that Sourcetree is missing): https://www.git-tower.com/compare/sourcetree/
Tower offers an "Instant Conflict Detection" feature that should be right up your alley (I work at Tower, a Git client for Mac and Windows).
It will let you know in advance if conflicts will occur when merging another branch or revision (by merging, rebasing, or pulling). Here's an example: https://imgur.com/a/VCkqrBI
Thanks for posting this interesting article. I work at Tower (Git client for Mac and Windows) so I feel compelled to chime in! :)
Becoming more productive with Git is one of our main goals, and I'm happy to state that most of the operations you address are already included in Tower (apart from "sync", which we will think about internally).
As for the others you mentioned:
reword - you can edit any commit message from the currently checked out branch by right-clicking the intended commit and selecting "Edit Commit Message"
split - you can edit any commit from the currently checked out branch by right-clicking the intended commit and selecting "Edit Commit". You will then be able to reform that revision into one or more new commits.
preview - Tower offers an "Instant Conflict Detection" feature that will let you know in advance if conflicts will occur when merging another branch or revision (by merging, rebasing, or pulling). Our latest major update was focused heavily on creating a better merge experience and you can also see the number of unresolved conflicts that you still need to resolve (with a progress bar being shown in case of a rebase). If you mess things up, you can also undo the latest operation or abort the Merge/Rebase operation altogether.
undo - you can undo pretty much any operation with CMD+Z (or CTRL+Z on Windows). This includes not only commits, branch creation/deletion but also more complex operations like merges, rebases, and even file discards (which is not something Git actually supports).
large-load - Tower works well with large repos. We do build caches on first run, so the initial run might indeed take longer to display very large sets of data (e.g. 10k+ tags).
large-ops - We designed Tower from the ground up to remain responsive when doing any kind of operation. All commands run asynchronously, so you can e.g. push a branch and immediately checkout another branch simultaneously.
I hope you give Tower a try in the near future — feel free to get in touch with us if some other question pops up.
A great alternative to Adobe's suite. Version 2 is fresh from the oven. Affinity Photo = Photoshop, Affinity Designer = Illustrator, Affinity Publisher = InDesign. The Universal License includes Mac, Windows, and iPadOS apps.
Thank you for your suggestion! I have edited my comment and will keep that in mind for the future. Also, thank you for your support — if you'd like to give the new features a try and you run into any issues, just let us know.
I'm not very familiar with how Jetbrains products handle Git — if it has everything you're looking for, I understand it can be a hard sell.
Most of our users enjoy Tower's ease of use, with features such as drag and drop to perform most tasks (including rebasing, cherry-picking, etc) or the possibility to undo pretty much everything (probably my favorite feature: https://www.git-tower.com/features/undo/mac). Many complex Git actions (e.g.: branch comparison or solving merging conflicts) are very simple to perform in Tower.
If you ever find the time, I suggest you give our trial version a shot!
Tower 9 for Mac has just been released. This 4-minute video covers everything you should know: https://youtu.be/CuCCGSlBkis
Here's what's new — I'll be here if you have any questions!
1. Merge Improvements:
- Merge UI: indicates the number of unresolved conflicts between two branches. Files now show badges depending on their status and it’s possible to view only conflicted files.
- Instant Conflict Detection: when merging, the dialog will instantly let you know if conflicts will occur.
- Restore Unmerged Versions of Files: developers can rollback accidental actions.
- It is now possible to create empty commits (or skip them entirely) and edit commit messages after resolving conflicts.
2. Diffing improvements:
- Auto-Expand Diffs in Changesets (you can set it to never, always, or for a number of items).
- Large Diff Warnings (you can adjust the threshold in the Preferences, default is 20 kb).
3. New Features:
- Snapshots: stashes that are automatically re-applied to the working copy (to quickly carry on with your work).
- Reveal any commit, branch, or tag in Tower's "History" view.
This is a free update for existing Tower users with a current subscription. New users can download a free 30-day trial.
Also: Tower is free for students, teachers, educational institutions and non-profit organizations.