Hacker News new | comments | ask | show | jobs | submit login

Its a shame that a Linux version is not included. A significant volume of developers work on Linux. If doing a multi platform application, why exclude it?

It's likely they felt it's not worth the time since most Linux users are using the CLI for everything else, and likely wouldn't be interested in a GUI. Personally I've never used the Github GUI and have no plans to, running the commands is fast and easy.

I think it's a myth that Linux users aren't interested in GUI tools. According to stack overflow statistics, Ubuntu is the most popular Linux based OS amongst developers, which is an OS that is much more GUI based than say Arch linux.

According to the same stats, Linux and OS X usage is statistically tied at ~21%. If you take into account the fact that only about 2% of computer users run Linux at all it's pretty clear that programmers disproportionately prefer Linux (and to a lesser extent OS X) to other systems.

I personally have already moved away from github, but I still wish they would build some tools that work on Linux.

Let me preface this by saying that I am a full-time Linux user and have been for several years. I run Debian on my laptop and Arch Linux on my home machine. Both use i3 (no DE), and I do all my work at the command line or in applications that I launch from the command line[0]. I love the Linux terminal. I don't even own a non-Linux machine, not counting the various OS X devices I've used at work when one is required.

> I think it's a myth that Linux users aren't interested in GUI tools.

It's definitely a myth, and a very dangerous and self-fulfilling one. I would strongly appreciate a GUI option for many common command-line tools. I like the command-line, and do most of my work there. But sometimes GUI tools are nice to have. The problem is that most GUI tools on Linux really suck, and most Linux tools don't even have a GUI at all[1]. Contrary to popular belief, it's not due to the inadequacy of GUI toolkits on Linux, but simply due to a lack of time actually spent developing these tools.

This ends up being self-fulfilling, because it raises the barrier to getting started on Linux, which keeps out people who would be otherwise very comfortable on Linux as an OS, but simply dislike being forced to use the command-line exclusively.

[0] Never bothered with dmenu, never really felt the need to set it up.

[1] I'm not counting ncurses-based interfaces as GUIs for these purposes.

> I am a full-time Linux user and have been for several years. I run Debian on my laptop and Arch Linux on my home machine. Both use i3 (no DE), and I do all my work at the command line or in applications that I launch from the command line[0]. I love the Linux terminal. I don't even own a non-Linux machine, not counting the various OS X devices I've used at work when one is required.

Wow, that's exactly my case as well :). I could've written this, almost word for word (except I run debian on my servers, and archlinux on my laptop/home machines).

I for one feel very uncomfortable using other OSes due to the lack of text UIs. And it seems pretty likely that a vast majority of linux devs feel similarly, considering how few softwares start out with just a GUI instead of the other way around.

Shameless plug: I recently built a new linux GUI git client. The people who use it really like it. Still working on docs to better explain what makes it different. Like GitHub's client, it's more than just a wrapper around the CLI, but unlike GitHub's client it exposes git's full power (tags, cherry-pick, rebase, etc.) If you'd like to try a new linux gui client, give it a spin!

Video in action: https://www.youtube.com/watch?v=X4UQpGk1Ry8

Free download Win/Mac/Linux: https://secure.diffplug.com/versions/1.6.1

Your diffing doesn't suck! That alone is really valuable. What really sucks on Windows is merging: there are very few products that deal with merging at a basic competency level (the git merge markers usually wreak havoc).

One criticism: that jgit tab needs a serious UX pass. It's extremely scary looking to someone who has never used it (me).

That being said, I'll be keeping a very close eye on your kickstarter. Very close.

Thanks for the feedback! On the spectrum from "iOS" to "airplane cockpit", I think GitHub is trying to be iPhone, but I think git has enough inherent power (like an aircraft) that you leave a lot of functionality on the table if you constrain yourself to a "no training required" interface. It's certainly something to aspire to, though! If there's anyone out there who thinks they can clean this up, I'm always looking for partners :) Based in SF, open to remote collaboration, contact info in my profile.

The differ / merge resolution story is gonna get a whole lot better real soon.

You should publish some screenshots of it.

100% agree! Was hoping to have the full manual done today, but it's not ready yet. Kinda worked out - I'll spend today ducking as the GitHub goliath whooshes over me for HN readership's attention ;-).

The rest of the product's docs are complete and full of screenshots:


so the git client will be too. This client animates changes to the DAG, so I'm experimenting with animated gifs so that the manual can capture the feel of using it.

I don't think it's a myth, but it definitely is self-fulfilling (since it puts off users who would otherwise use Linux, but don't because they don't want to exclusively use the CLI)

Personally I use a mac nowadays but still use and prefer the command line for this kind of thing. I tried using Github for Mac but quickly gave up the first time I had to do something vaguely complicated.

I guess I'm still a linux person at heart - you can tell if you prefer to 'brew install everything and have never actually used the App Store except to install Xcode :)

My discovery of `brew cask`[0] has meant that the App Store is avoided at nearly all cost. I'm a Linux user at heart, too -- one of the only reasons I use OS X is that it feels like "Unix, but with nice powerful GUI apps as well"!

[0] http://caskroom.io/

I wouldn't try to speak for everyone who uses Linux of course, it's just been my observation. With my "roots" in computing being in the command line driven 80s, I still feel way better using command line stuff and likely will never change. It doesn't mean I am opposed to GUIs in general, there are certainly things I would never consider doing from a command line, but git isn't one of them.

The problem with this attitude is that it makes it far more difficult for Linux distros to gain more varied users. Specifically those who are new to development, or (not really relevant in this case) not developers at all. Instead of pointing to a CLI for everything, which I personally love and support for what it is, it might be worth encouraging companies to develop more cross-platform software that allows for a choice of operating system without many sacrifices.

I agree 100%. More GUI tools will most certainly attract more people to Linux and something that shouldn't be overlooked. For the record I was just guessing the reasoning GitHub overlooked it, there could be other reasons I'm unaware of.

It's rather embarrassing that github would consider it too difficult or too troublesome to release Linux builds. Very insulting towards a huge chunk of its user base.

Regarding GUI, how do you initiate a pull request on the command line?


"Embarrassing"? "Insulting"?

Aren't you taking this a little too personally? I mean, it's a software release for christs sake.

It demonstrates a lack of concern/acknowledgement of the diversity of its user base. Especially if they are going to be promoting this on the front page of their website and in my dashboard upon login, which presents me with the broadcast:

"GitHub Desktop is now available The new GitHub Desktop is now available"

And then I click on it to install it, I feel marginalized and hence a little insulted, when discovering I can't.

In this day, there are a great variety of cross-platform gui toolkits (e.g. https://en.wikipedia.org/wiki/List_of_platform-independent_G...), that could have been used. It is embarrassing for such a large organisation with all sorts of users using all sorts of machines to not release cross-platform tools. It if was just someone's personal project, or if it was a company's specialized toolkit for their specific customer base, the lack of cross-platform tools is excusable.

> I feel marginalized and hence a little insulted, when discovering I can't.

I feel you; I used to be a Linux desktop user and an advocate thereof. But that's the price that you pay for using the distant, distant third most-used OS for a company trying to drive user engagement with their product. You (the collective you) have to be an attractive market if you want commercial entities to consider you worth marketing to, y'know?

Or maybe, just maybe, they are very aware of their user base and that's the reason there is no version for Linux? Should I get upset that they don't have Lithuanian version of the app, and hence demonstrate a lack of concern/acknowledgement of the diversity of its user base?

That's not a comparable anaolgy. I can't find data on the number of linux users vs the number of lithuanian users, but the number of linux users is orders of magnitude higher.

No. Github is built on git. Git was written by Linus Torvalds. You see where this is going? Oh, we'll build our tech on your side project but ignore the user base of your main project. Nice.

I was just guessing, I really don't know. There could be other reasons I'm unaware of.


thanks, but the context was how to create a new pull request to github from commandline, which I don't believe git request-pull can do. Another comment mentions https://github.com/github/hub#git-pull-request which seems to be what I am looking for.

git pull-request

Using https://github.com/github/hub

thanks, that's what I'm looking for!

I'm sure most hardcore Linux users would consider using a GUI to use git would be embarrassing / insulting TBF.

I mean git add, git commit, and git push/pull is 95% of what you'd do with git and it's not rocket science.

Linux has been my primary desktop OS for almost twenty years, and no, I have no problems using good GUI tools when they're available. I'm happy to use a Git GUI to review changed files and selectively choose text hunks from them for a specific changeset, for example. Often I'll just do it from with Vim with Fugitive, but that's a GUI too, by any definition.

right. But it is a nice clean GUI, that handles the 95% percent without any fluff. The git program is very complicated, designed to handle large projects, and it does have a learning curve (especially to keep all the commands straight e.g. git branch -l, git branch -d, git checkout -b, git "reqeust-pull"???). When I was first learning git, I was a little overwhelmed at its variety of commands in the man, and would have preferred this GUI where I'm able to simply click on repos, click to create a branch, and click to create a pull request, to handle 95%+ of use cases. Even hardcore linux users like to use simple GUI tools, sometimes.

But it's not about git itself. Issues, PR comments, the wiki and such things make github what is. Personally, I'd prefer a nice graphical desktop app to handle these, and either have a terminal embedded or run it alongside the gui to handle the git commands.

I use the CLI. Still, that's not the point. Mac users use the CLI too. Some Windows users as well I'm sure. We now live in a Triple-Platform world. Linux is not a sideline project. Its a major Operating System. If OSX gets it (BSD), surely it can be compiled to Linux. Its multi platform anyway so why not go the full distance?!

I believe they're using native libraries on each platform though - the OSX app is using Cocoa, and the Windows app is using WPF.

> It's likely they felt it's not worth the time

This seems strange. Did they not use Electron or Atom Shell or whatever it's called to build Github Desktop? If so, then is it not relatively trivial to create a GNU/Linux (or at least non-OSX-centric Unix) tarball of all the Javascript or whatever? If not so, then why not?

Because Electron is heavy and clunky. It makes no sense for a simple wrapper around a tiny (less than 1MB) commandline tool to have memory and CPU requirements on par with those of an instance of Chromium with a javascript-laden page open in a tab.

If it's really just a wrapper around the git command, then I suppose I'm not really interested anyway, then, seeing as the existing Git GUIs for Linux provide that rather well. I was assuming it was like the Mac client where it provides Github-specific functionality (adding "Clone in Desktop" buttons to repo pages, managing pull requests, etc.).

I was assuming it was like the Mac client where it provides Github-specific functionality (adding "Clone in Desktop" buttons to repo pages, managing pull requests, etc.). It is like the Mac client, but that functionality still doesn’t justify the resource usage than a Chromium wrapper would bring.

Right; my point with that was more around the implication that it's just a git wrapper.

Regardless, my ultimate point is that Github went through all this trouble to make this Electron Shell thing and they don't even bother using their own tool. That seems surprising, Electron's merits and troubles aside.

Downloaded it, libcef.dll + many other MBs of browser. But no nodejs. Weird.

Haven't tried it yet, but the history visualization looks very cool. It can be useful to actually SEE branches sometimes. As for why its not on linux desktop? Probably too much work to adapt for many different flavors for a small number of people.

As strange as it sounds the lack of a decent git GUI is one of the reasons I don't feel comfortable using Linux as my main development environment (not the only reason of course).

It's a big pitty neither Github nor Atlassian (the big "git" players, in my mind) seem inclined to release a GUI client for Linux.

Try the Magit package for Emacs [1]. You don't have to know (much) Emacs to use it, and it's a really great client.

[1]: https://github.com/magit/magit

Magit is AWESOME. It's easily saved me an hour each day (when using git heavily).

Which parts do you enjoy the most ?

It's super easy to create a new branch and push it upstream (especially when creating PRs).

I know I could write a script to do that for me, but there's something so nice about having little things like that already baked in.

What I like most about Magit is staging, unstaging, and reverting hunks.

git cherry picking was nice, under magit it's even better.

I think learning the fundamentals of the git command line is pretty simple, and pays large dividends.

Indeed, learning to use git was one of the main things that spurred me to learn to use the command line for many other tasks. It's a good starting point.

I'm very comfortable with the command line in general already, and if I have to I can use git on the command line. I've just always felt a GUI is the best interface for git - personal preference I suppose.

I'm a very visual person when it comes to code, and being able to see a nice history/diff etc inline with a few clicks just sits better with how I view the world & my ideal workflow.

I appreciate I'm probably in the minority on that though, as evidenced by the lack of client from those two big players I assume they feel that way too!

Exactly, I feel the same. By default, git commit just shows me "M /src/foo/whatever", I prefer to use a GUI where I can then click on that and it shows me a nice fullscreen visual diff with colour highlighting etc. Just works a lot better for me in being productive and reviewing things before I commit(an essential part of any workflow)

Try `git add -p`

or `git diff`

I also prefer a nice visual diff and branching so usually depending on what project I am working in I always have Gitlab or Github open in my browser. Everything else is done on the CLI.

I started with GitHub for Windows and have quickly transitioned over to PowerShell. Bit of a learning curve, and I still have to look up a number of commands, but I've actually found it easier than using the GUI. I don't even use the Android Studio integration ...

Gitg (https://wiki.gnome.org/Apps/Gitg/) looks decent, although it's Linux-only. It's like git-gui and gitk merged into a GTK3 interface.

It would be cool if Atlassian would open-source their client (SourceTree). They make money off of Bitbucket/Stash and provide SourceTree as freeware, so it seems like a no-brainer to open-source it and let the community port it to Linux.

Git cola is very good on linux http://git-cola.github.io/

git-cola runs on Mac OS X and Windows too. It's also very vim-ish / keyboard-centric, which is a big plus if you hate using a mouse, but still like to visually stage things.


There are several GUIs for git on Linux. GitG comes to mind. But there are several others - also with github integration.


Magit is the best Git UI in existence.

I haven't found a dedicated Linux GUI client for git either, but I'm a big fan of IntelliJ's CVS support. While it supports far from everything you can do with git, its interface is excellent, and having it integrated with your editor is a big plus.

smartgit is very nice, but there are many mnore GUI clients on linux you can find very easily.

I use http://rabbitvcs.org/ (it's a nautilus plugin, so basically it's got the TortoiseSVN style context menu interface), and find it great. Having said that, my main work is with SVN, only use git for interacting with open source projects I need to submit PRs to etc.

I feel like most GNU/Linux users (especially developers) are comfortable enough using cli tool for this to be a non issue.

Of course they are. The people who aren't comfortable enough using a CLI stay clear of Linux.

I think that's a poor excuse for not having a linux version. By that logic, we wouldn't have sublime because vim/emacs should be enough.

As I see it, the main reason I like to use linux on my development boxes is flexibility(or call it freedom if you want, I don't like doing so). I can do things in whatever way works best for me and I can create scripts/install packages to glue stuff together fairly easily to adapt to my workflow.

That was rather my point. It's not that Linux doesn't need UIs because their users all use CLIs, it's that it's users all user CLIs because anyone who'd like a nice UI stays well away.

I never said anything about removing existing software (such as sublime). I was talking about there being less incentive to create a git gui for a user base that is - from my experience - happy with the current cli interface or any other already existing client (such as magit for emacs).

How about SmartGit? Back in the days when I was working on Windows and Linux I used SmartSVN, quite nice for a Java app.

I'm actually working on a Github Desktop "clone" using Electron (so that it'll be "cross-platform"). I'm also working a Gtk+3 version (since I have more experience with that), but I haven't gotten too far.

Same here. Although I've already gotten somewhere. Already implemented the "History" tab.

Ping me if you want to see it. Planning to open source it soon.

Agreed. It's 2015. No excuse not to put out a Linux version. I thought those days are over. The fact that _Microsoft_ of all companies is releasing multiple developer tools on Linux these days should tell you all you need to know about this bone of contention. I'd have expected more from Github, to be honest, given Atom.

On my Ubuntu at the moment the big cross-platform packages I have are: .Net platform, Visual Studio Code, Spotify client, Skype client, Viber client, Chrome, Scrivener, …

Maybe because most GNU/Linux developers seem to be happy using it as a PDP-11 with a VT100?

Having used a multiple of desktop systems since the mid-80's, and lots of their main IDE systems, I could never grasp this attitude. And yes, I do my way around Emacs and Elisp (but it comes from MIT Lisp culture).

My guess is they don't bother with Linux systems because proper application packaging on Linux OSes is source-centric.

They've made the choice not to offer their code as free software, so that would mean it would be a headache to support on systems that value software freedom.

It's possible that since Linux is a smaller percentage of their user base that they prioritized the Mac OS X and Windows ports and will eventually do Linux. If I were them that's what I would do at least.

My thoughts exactly. How different from OS X can it be?

The biggest difference is that they'd have to write a new Qt or GTK+ UI.

What's the UI written in now? Doesn't Qt work for all three platforms?

It's using Cocoa on OS X and WPF on Windows, in other words the UI toolkits that are native to their respective platforms. Qt indeed works everywhere, but by using it you make the tradeoff that your app doesn't really feel native anywhere (except maybe on Linux with KDE).

In short, using Qt would mean making concessions on UI quality.

I find it hard to look at their windows UI and think "native".

I'm wrong, as it was explicitly designed in windows 8's "Metro" style in mind [https://github.com/blog/1151-designing-github-for-windows]. Nevertheless, the concept of a "native" windows style is currently such a mixed mess that I can't bring myself to think of this app as "native". I don't see why being native to Metro is desirable enough to give up the convenience of having a single cross-platform app.

[I'm not saying I don't like the design, I do. It's just that I care about its features — simplicity and github integration — as something I can recommend to git newbies — much more that "nativeness".]

I don't think non-cocoa or non-WPF necessarily means worse quality, you just have to do a bit more custom work. Take Slack (using the Electron framework), or Telegram's Qt client.

Having said that, Qt Quick Controls could definitely be improved by having better default desktop QML UI widgets.

I use Slack on a daily basis and I can't say I'm happy with it being an Electron app. For what it does it's very resource intensive and the way it disregards a lot of its host OS conventions isn't cool. If I wanted a web app I'd open another browser tab; there's no need for a goofy wrapper with half-hearted OS integration.

I also use it daily, and agree with what you are saying about it being a resource hog. That said, I find it pretty good for the most part, and being cross-platform for free is killer.

I'm on OSX and Linux, most of my team are on Linux, I'm not sure they would have taken the trouble to release a Linux version without Electron.

Hmm, weird, I thought Qt was pretty good at the native look and feel. Thanks for the info!

I think the problem is that in user interfaces pretty good can be a million miles from good. It's like the uncanny valley in animation - the app feels wrong or ill but I can't quite tell why and it's very off-putting.

But maybe I'm too snobby about user interfaces.

I'm surprised they didn't build this on electron...


Huh? My question is "how hard is porting this to Linux, if there's already an OS X version?".

OS X and Linux are not the same OS. The entire stack for writing GUI applications is completely different - as different as writing an iOS app vs. an Android app. OS X and Linux don't share the same kernel, the same foundation frameworks, or the same UI frameworks. The entire application would have to be written from scratch. If they're really ambitious they could probably share some Objective-C business logic, but anything that touches the UI is platform specific.

They have a Windows version. Linux isn't less like OS X than Windows is.

Just because you can type "sudo" on both doesn't make them similar when it comes to making GUI applications. Again, the frameworks are completely different, meaning that a complete or nearly complete rewrite would be necessary.

Again, not more than the one needed for Windows.

Windows has an order of magnitude more users, and probably comparatively even more money than that.

The first step to getting commercially-focused software on your desktop OS of choice is being a desirable market to cater to.

They are using the Cocoa toolkit on OSX - that is a Mac-specific thing and isn't available on Linux.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact