I'm almost certain that Linux devs make a very small percentage of their target audience (I see most web devs use Macs). That's a great question to ask them directly, though!
I imagine most Linux developers will be comfortable on the command line or using Magit; it's Mac- & Windows-using developers who are more likely to be less comfortable with those tools.
Hi, I’m part of the team. We started with a Mac version in 2011 and based on the requests we received from our users decided to start working on a Windows version. Even so we don’t have plans for a Linux version right now, we’ll keep tracking the feedback.
SmartGit is a good, paid, cross-platform client that just happens to run on Linux because it is written in Java. That is very different than developing a whole separate code base for a non-existent Linux market.
SmartGit is an awesome, paid cross-platform Git client.
Written in Java, which probably means that it cost them relatively little money to support Linux, and maybe they wouldn't have done it otherwise?
The Windows version is based on WPF. This strongly suggests that the Mac and Windows versions are completely separate apps, not a single app ported to multiple platforms. So a Linux version would be yet another completely separate app. That would be expensive to develop, for probably negligible reward.
I think if you are using Linux you are most probably familiar with the CLI (and probably preffer to solve things there instead of using the "magic" of GUI programs). Of all the possible markets for Tower, Linux is probably the least profitable one.
Maybe it's just my inherent bias towards command-line-based Git, but I have to wonder just how useful this is to Git newbies if a lot of their page is dedicated to learning how to use Tower, especially with a 24-part video series.
I imagine it's because the video series is introducing git itself, through Tower's UI.
git is a bunch of concepts: commits, branches, tags, a staging area, rebasing, pushing, pulling, the reflog, etc. Provided a git client implements these concepts they're a fine way to learn git.
Also note many (not you, just others I've met) 'I only use the command line' git users use git's inbuilt gitk GUI a bunch of the time. Sometimes it just helps to be able to see the branching in a real tree.
I usually use git using command line and tig for the tree view and viewing changesets, but I really miss the commit feature of git plugin in JetBrain IDEs: editing while viewing the diff, full code highlight and lint in diff, easy selecting of files to cimmit, etc. Any alternatives for linux/atom?
VSCode, maybe? VSCode's git support does fine for most of my needs and I think it covers the list of things you are looking for. Admittedly it is different enough from Atom that there would be a transition, but it runs on Linux.
The learning platform on git-tower.com/learn also contains lots of content for learning Git on the command line (without Tower). This is true for both the 150-page book and the 24-part video series.
While giving lectures on programming, I have found that teaching students to use the git command line is much more useful than teaching them some git GUI tool.
That being said, only a few students really manage to get git after a semester. Most students just kind of muddle through with a few basic commands, and just copy and paste commands from the internet (or re-clone, and copy files over).
git is definitely not easy to learn, especially to those who are new to version control. You need to know at least a dozen terms (repo commit push pull fetch clone stage stash fork pull-request etc.) before you can even get a basic understanding of what git is.
I wouldn't assume that Git GUIs are mainly for beginners. (I'm not saying you're assuming that, but I do know a few people who've made that assumption.)
I've been using Git for years and know the command line well enough, but I greatly prefer a good GUI.
The reason, even more than not having to memorize commands, is that it gives much more visibility into the state of the repo. Instead of having to poke around with different commands to suss things out, it's all right there before my eyes.
I'm currently using SmartGit. Friends have told me Tower is even better, but I needed something that ran on Windows as well as Mac. SmartGit also supports Linux, but my Linux work is pretty much always in a VM, and I'm fine with keeping source code on the host Windows or Mac system and running Git there. So will definitely check out Tower now.
Just a couple of examples of where SmartGit outshines the command line - I would guess that Tower has similar features:
• I accidentally commit something to the wrong branch. On the command line, it takes a series of git commands like reset, stash, checkout the other branch, pop the stash, add the files again, and finally commit to the correct branch. In SmartGit I just go to the log view and drag the branch markers to where I want them, and it does all that stuff automatically.
• I mess up a rebase or the like and want to get back to some previous state - but now I'm not even sure which "lost" commit will be the good one. The command line provides the reflog, where I can look up hashes for previous commits. Then I can copy the hashes and checkout those commits one by one until I find the one I want. In SmartGit I just click the "Recyclable Commits" checkbox, and now everything in the reflog shows up as part of the normal log view just like any other commit. I can cursor up and down through the log and it lists the changed files for each commit. I can click any of those files and immediately see the diff. All of this is without having to do any temporary checkouts. When I find the commit I want, I just add a branch there or move a branch label to it, and now it's part of the normal history again. Same for stashes: if I have some saved stashes I can view them as part of the normal log too.
I really like this seamless integration of concepts that otherwise involve multiple steps or a completely different methodology like the reflog.
Anyway, glad to hear Tower is on Windows now - will definitely take a look at it!
I like doing everything but committing through the command line.
I like committing with a GUI tool because i think it's easier to double check what you are committing before doing so.
It is sad that Sourcetree, once the go-to git GUI for Windows and Mac is now full of bugs and performance issues, and almost always gets worse with every new version. They updated the UI every major version (e.g. 1.5 to 1.6, or 1.7/1.8/1.9), in most cases for no good reason (in fact they faced so much backlash on the change to flat grey UI that they had to backpedal and reintroduced colored icons). And yet they are still planning on a major UI change again in the next version. At the same time, basic functionalities are broken left and right.
But on the other hand it is a big opportunity for others like Tower
Has anyone used tower and sourcetree and can compare them both? I am just about fed up with sourcetree and ready to switch to a not-terrible alternative.
Git Extensions has certain shortcomings (search doesn't work that great, deleting branches is clunky etc.), but its competitors - on Windows at least - are even worse, I agree.
Besides, Git Extensions is written in C# and open-source... once I finally have some time on my hands (read: never), I'd gladly add some simple features that I'm missing in it
I really like Git Extensions commit screen, the best from the git GUIs I've used.
It has great shortcuts to stage/unstage/reset and you can even separate lines to be commited.
I use Tower on Mac daily. I initially recommended SourceTree for the Windows users in my team (they were all new to Git) but after using it with one of them I rescinded that recommendation. It is awful.
If Tower for Windows is anything like its Mac counterpart I would recommend it head-and-shoulders over anything else. Well worth the price!
I've only used Sourcetree briefly, a couple years back when I was deciding between GUI frontends to Git. I compared Tower, Sourcetree, Github Desktop, and maybe one or two others.
Tower was the clear winner then and Tower 2 has only improved on it.
I was, and in many ways still am, a Git novice. Like many, I only did the basic commands in order to work with my team. But Tower has helped me become a (somewhat) better branch strategist, in some cases even enabling me to recommend to my more senior colleagues ways to fix problems with branches.
The reason I have been able to more meaningfully contribute is because Tower, like many GUIs, makes things discoverable. So while the command-line equivalents are hidden from view, the sequence and logic of working with different branches is exposed by the spatial metaphors that inhere in the GUI.
As a final plug, the Tree view that Tower provides continues to help me gain insight about how my work and the work of my colleagues integrates into our product's main branch.
I'm not associated with Tower except as a very satisfied user. It's not perfect, and there are some things I wish it did better. But the product is under active development and the product is rock solid.
I use both SourceTree and Tower on OS X and Windows.
While I can say that on OS X, both work better than their counterpart on Windows, Tower is still my go to client. I think the biggest thing is that when I started with Tower, things just clicked. On top of that, with Tower, I has never dealt with bugs or any issues (besides the windows beta installer).
SourceTree on Windows is pretty much worthless. It won't handle large repos well and large changes cause it to lock up and crash when trying to stage files. If you don't like Tower, I would recommend ungit[1] for Windows.
I use a combination of SourceTree and TortoiseHg with the HgGit extension...what's sad is that TortoiseHg tends to work better than SourceTree, and definitely ebtter than the official GitHub client.
TortoiseHg is completely different than TortoiseGit, despite the similar names (and logos). While the latter is an assortment of context menus and dialogs, THG has this plus a great "workbench" which combines everything into one. It's easily possible to use THG alone without ever touching the command line which is a rather nice feature when trying to convince non-programmers to use version control. If there was a git equivalent, I'd happily use it.
TortoiseGit is by far the best Git GUI on Windows or anywhere else. The UI is light, fast and it stays out of your way. It's very tightly integrated with the file browser, which is really the only app I want to be using to look at my files...
SourceTree OTOH is slow and clunky on every platform. But even if it had a light and fast UI - it's not integrated with my file browser, which sucks. With TortoiseGit, every Git command that I need is a single click away when I'm viewing my files.
if tortoisegit is the best there is (that's what I use since forever when I'm not actually in msysgit's shell, and usually I am - never tried anything else), then there's quite a lot of room for a better GUI client.
I mean, tortoise gets the job done, but it isn't what I'd consider fast or convenient.
It's nice for being integrated with explorer, but far from the best ui. In fact I'd hold up TortoiseGit as an example of why knowing a a ui toolkit does not make a programmer a ui expert: it's a pretty terrible ui. Don't get me wrong: If you know git well and are familiar with how to use TortoiseGit then it's functional. It's just not a good first exposure to git, nor is it easy to learn.
Since 1.9.x SourceTree has had a major memory leak that results in noticeable lag when I'm typing in the UI (e.g. a commit message) if the RAM usage is 1GB+.
Hey Everyone, I hear ya - we’re cranking away on SourceTree and have a few things in our hopper coming in a few short weeks that’ll address many of your concerns.
Check out our most recent beta version, SourceTree for Windows 1.9.7 Beta 2 [1] with an updated TreeView to support folder level diffs, support for LFS 1.4.1, improved performance when switching tabs, a huge fix for addressing invalid dictionaries in the Spell Checker registry and many more fixes listed here [2].
We’re also working hard on improving the whole experience. Download Alpha 2.0.0 [3] for a sneak peek at a brand new SourceTree for Windows. Alpha 2.0.0. comes with high DPI support, improved repository browser & bookmarks view, patched memory leak and new tabbed navigation. Just a heads up, there are some known issues with Alpha 2.0.0, but they’ll be addressed in Alpha 2.0.1 in the coming weeks. Feel free to watch the repo to get notified of new builds.
Full disclosure - I’m the Product Manager on SourceTree. LMK if you’d like to chat; there’s a link to my calendar on my HN profile page.
It's good to hear that tree view is coming back. The ui changes around 1.7/1.8 were somewhat annoying, but the removal of tree view "because it was slow" was horribly handled. State "we know it's slow, but it's not widely used and it'll be addressed in x months".. Don't just remove it with no alternative.
Out of frustration, I switched to gitkraken around that time. The main feature it has over sourcetree is auto-stash, which is exactly the type of feature I wish atlassian was working on, rather than more ui revamping.
Either way, I wish you good luck with it, and thanks for bringing a great git ui to Windows.
I've run Sourcetree for the past three years, and I'm running the Sourcetree beta for Mac right now.
Just as a data-point: I'm quite satisfied with the UI changes. The UI is pleasing and functional.
For the work that I use Sourcetree for, it is not broken left and right. It is not broken at all. For staging files, browsing branches, browsing stashes, switching branches, doing the occational cherry-pick it works fine. It works really great for doing fine-grained (line or chunck) staging.
Tower team here: thanks for pointing this out! This is already on our todo list - and, in fact, already being worked on! Won't be an issue for very long ;-)
Absolutely. Compared to other clients –SourceTree, Github, and GitKraken– the UI feels quick, makes me feel more productive –especially with drag-and-drop interactions-, and presents all the appropriate information at the right time, based on the context.
If there ever is a Tower 3 release, I'm immediately purchasing an update license.
Do you know if it works well behind a corporate proxy?
I'm behind a NTLM authenticated proxy at work and we have problems passing through it with all major git clients. There are workarounds (like CNTLM) but I would love a git client that have such support out of the box.
Yes. It's excellent. Well worth giving a try. It is a bit annoying to use with anything other than GitHub or Bitbucket, but that's the only issue I have with it.
I use GitUp[0] which is for macOS only, but is a nice plain and simple Git GUI. Unfortunately it doesn't support GPG signing so I still end up using the command line to commit and tag.
Downloaded and installed it on my corporate machine, and briefly tried it. Observations:
- No visible options for setting proxy configuration
- No interactive rebase
- Dropdowns for selecting "diff" and "merge" tools would expand, but not let me actually click the checkboxes.
- Crashed within a couple minutes of having loaded it up. Don't remember what specifically I'd clicked on - might have been the icon in the bottom left.
I'm primarily a SourceTree user, but I'm kinda frustrated at all the Windows Git GUI tools right now.
- SourceTree 1.6.25 is stable and has interactive rebase, but they progressively ruined the UI after 1.6 . Staging behavior is great, but it doesn't have file blaming or view-tree-at-revision.
- Git Extensions has file blaming and can sorta correlate with the file tree because it has Explorer integration, but the rest of the UI doesn't suit me.
- GitKraken actually integrates libgit so that it doesn't need to run external Git processes for operations, which is particularly nice in a corporate environment where process monitoring can slow things down. On the other hand, way too much shiny, no interactive rebase, and the UI again just doesn't feel right. Also, the recent announcement of licensing changes for corporate use.
- Tower appears to have view-tree-at-revision, but looked too monochrome, obviously an early beta, and once again, no interactive rebase.
I suppose having _one_ application that integrates the best of all of those would be too much to ask.
So, I guess I'm sticking with SourceTree 1.6.25 for the foreseeable future.
Tower team member here :-) We are of course working on lots of improvements, especially in the current beta phase. Regarding interactive rebase, by the way, I can say that it's already on the wish list :-)
74 comments
[ 3.0 ms ] story [ 88.8 ms ] threadI have used Tower on OS X, and I loved it. I'm glad it's on Windows too.
git is a bunch of concepts: commits, branches, tags, a staging area, rebasing, pushing, pulling, the reflog, etc. Provided a git client implements these concepts they're a fine way to learn git.
Also note many (not you, just others I've met) 'I only use the command line' git users use git's inbuilt gitk GUI a bunch of the time. Sometimes it just helps to be able to see the branching in a real tree.
That being said, only a few students really manage to get git after a semester. Most students just kind of muddle through with a few basic commands, and just copy and paste commands from the internet (or re-clone, and copy files over).
Git is not easy to learn.
I've been using Git for years and know the command line well enough, but I greatly prefer a good GUI.
The reason, even more than not having to memorize commands, is that it gives much more visibility into the state of the repo. Instead of having to poke around with different commands to suss things out, it's all right there before my eyes.
I'm currently using SmartGit. Friends have told me Tower is even better, but I needed something that ran on Windows as well as Mac. SmartGit also supports Linux, but my Linux work is pretty much always in a VM, and I'm fine with keeping source code on the host Windows or Mac system and running Git there. So will definitely check out Tower now.
Just a couple of examples of where SmartGit outshines the command line - I would guess that Tower has similar features:
• I accidentally commit something to the wrong branch. On the command line, it takes a series of git commands like reset, stash, checkout the other branch, pop the stash, add the files again, and finally commit to the correct branch. In SmartGit I just go to the log view and drag the branch markers to where I want them, and it does all that stuff automatically.
• I mess up a rebase or the like and want to get back to some previous state - but now I'm not even sure which "lost" commit will be the good one. The command line provides the reflog, where I can look up hashes for previous commits. Then I can copy the hashes and checkout those commits one by one until I find the one I want. In SmartGit I just click the "Recyclable Commits" checkbox, and now everything in the reflog shows up as part of the normal log view just like any other commit. I can cursor up and down through the log and it lists the changed files for each commit. I can click any of those files and immediately see the diff. All of this is without having to do any temporary checkouts. When I find the commit I want, I just add a branch there or move a branch label to it, and now it's part of the normal history again. Same for stashes: if I have some saved stashes I can view them as part of the normal log too.
I really like this seamless integration of concepts that otherwise involve multiple steps or a completely different methodology like the reflog.
Anyway, glad to hear Tower is on Windows now - will definitely take a look at it!
But on the other hand it is a big opportunity for others like Tower
SourceTree is barely usable now really, I switched back to GitX on OSX...
Besides, Git Extensions is written in C# and open-source... once I finally have some time on my hands (read: never), I'd gladly add some simple features that I'm missing in it
If Tower for Windows is anything like its Mac counterpart I would recommend it head-and-shoulders over anything else. Well worth the price!
Edit: typo fix
Tower was the clear winner then and Tower 2 has only improved on it.
I was, and in many ways still am, a Git novice. Like many, I only did the basic commands in order to work with my team. But Tower has helped me become a (somewhat) better branch strategist, in some cases even enabling me to recommend to my more senior colleagues ways to fix problems with branches.
The reason I have been able to more meaningfully contribute is because Tower, like many GUIs, makes things discoverable. So while the command-line equivalents are hidden from view, the sequence and logic of working with different branches is exposed by the spatial metaphors that inhere in the GUI.
As a final plug, the Tree view that Tower provides continues to help me gain insight about how my work and the work of my colleagues integrates into our product's main branch.
I'm not associated with Tower except as a very satisfied user. It's not perfect, and there are some things I wish it did better. But the product is under active development and the product is rock solid.
While I can say that on OS X, both work better than their counterpart on Windows, Tower is still my go to client. I think the biggest thing is that when I started with Tower, things just clicked. On top of that, with Tower, I has never dealt with bugs or any issues (besides the windows beta installer).
SourceTree on Windows is pretty much worthless. It won't handle large repos well and large changes cause it to lock up and crash when trying to stage files. If you don't like Tower, I would recommend ungit[1] for Windows.
[1]: https://www.npmjs.com/package/ungit
Does Tower do interactive rebase? That's one of the main reasons I use SourceTree. Is the interactive rebase functionality good?
Update: Tower doesn't have interactive rebase. https://twitter.com/joeycadle/status/777862389286989824
Sticking with SourceTree since it does.
SourceTree OTOH is slow and clunky on every platform. But even if it had a light and fast UI - it's not integrated with my file browser, which sucks. With TortoiseGit, every Git command that I need is a single click away when I'm viewing my files.
I mean, tortoise gets the job done, but it isn't what I'd consider fast or convenient.
I disagree. GitExtensions is by far the best Windows UI for Git.
Check out our most recent beta version, SourceTree for Windows 1.9.7 Beta 2 [1] with an updated TreeView to support folder level diffs, support for LFS 1.4.1, improved performance when switching tabs, a huge fix for addressing invalid dictionaries in the Spell Checker registry and many more fixes listed here [2].
We’re also working hard on improving the whole experience. Download Alpha 2.0.0 [3] for a sneak peek at a brand new SourceTree for Windows. Alpha 2.0.0. comes with high DPI support, improved repository browser & bookmarks view, patched memory leak and new tabbed navigation. Just a heads up, there are some known issues with Alpha 2.0.0, but they’ll be addressed in Alpha 2.0.1 in the coming weeks. Feel free to watch the repo to get notified of new builds.
Full disclosure - I’m the Product Manager on SourceTree. LMK if you’d like to chat; there’s a link to my calendar on my HN profile page.
[1]: https://bitbucket.org/atlassianlabs/sourcetree-betas/downloa...
[2]: https://www.sourcetreeapp.com/update/windows/beta/ReleaseNot...
[3]: https://bitbucket.org/atlassianlabs/sourcetree-betas/downloa...
Out of frustration, I switched to gitkraken around that time. The main feature it has over sourcetree is auto-stash, which is exactly the type of feature I wish atlassian was working on, rather than more ui revamping.
Either way, I wish you good luck with it, and thanks for bringing a great git ui to Windows.
Just as a data-point: I'm quite satisfied with the UI changes. The UI is pleasing and functional.
For the work that I use Sourcetree for, it is not broken left and right. It is not broken at all. For staging files, browsing branches, browsing stashes, switching branches, doing the occational cherry-pick it works fine. It works really great for doing fine-grained (line or chunck) staging.
- Everytime I clicked on the bottom left plus icon, the app crash: http://imgur.com/a/YI8OO
- Can you add the option to always expand all diffs by default when viewing a commit?
- Can you add support for Meld merge?
https://www.git-tower.com/buy
If there ever is a Tower 3 release, I'm immediately purchasing an update license.
I'm behind a NTLM authenticated proxy at work and we have problems passing through it with all major git clients. There are workarounds (like CNTLM) but I would love a git client that have such support out of the box.
The interface looks good but not tested since it's an Electron app and I'm pushing my RAM most of the time anyhow (I'm looking at you, Slack).
Interactive rebase, as another commenter has noted, is a feature I need.
It was good on 1.0 and it got even better after they introduced fuzzy search.
The interactive merge/rebase works really well.
[0]: http://gitup.co
- No visible options for setting proxy configuration
- No interactive rebase
- Dropdowns for selecting "diff" and "merge" tools would expand, but not let me actually click the checkboxes.
- Crashed within a couple minutes of having loaded it up. Don't remember what specifically I'd clicked on - might have been the icon in the bottom left.
I'm primarily a SourceTree user, but I'm kinda frustrated at all the Windows Git GUI tools right now.
- SourceTree 1.6.25 is stable and has interactive rebase, but they progressively ruined the UI after 1.6 . Staging behavior is great, but it doesn't have file blaming or view-tree-at-revision.
- Git Extensions has file blaming and can sorta correlate with the file tree because it has Explorer integration, but the rest of the UI doesn't suit me.
- GitKraken actually integrates libgit so that it doesn't need to run external Git processes for operations, which is particularly nice in a corporate environment where process monitoring can slow things down. On the other hand, way too much shiny, no interactive rebase, and the UI again just doesn't feel right. Also, the recent announcement of licensing changes for corporate use.
- Tower appears to have view-tree-at-revision, but looked too monochrome, obviously an early beta, and once again, no interactive rebase.
I suppose having _one_ application that integrates the best of all of those would be too much to ask.
So, I guess I'm sticking with SourceTree 1.6.25 for the foreseeable future.
Does it exist or is it like a lot of other git GUI with no separation between staged and not staged files/hunks ?