GitHub Desktop is now available
github.com
github.com
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.
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.
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 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!
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.
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.
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.
Video in action: https://www.youtube.com/watch?v=X4UQpGk1Ry8
Free download Win/Mac/Linux: https://secure.diffplug.com/versions/1.6.1
The rest of the product's docs are complete and full of screenshots:
https://docs.diffplug.com/1.6.1/ViewerDiffers/TextViewerDiff...
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.
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.
The differ / merge resolution story is gonna get a whole lot better real soon.
> 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.
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).
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 :)
Regarding GUI, how do you initiate a pull request on the command line?
Aren't you taking this a little too personally? I mean, it's a software release for christs sake.
"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 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?
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.
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?
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.
In short, using Qt would mean making concessions on UI quality.
But maybe I'm too snobby about user interfaces.
Having said that, Qt Quick Controls could definitely be improved by having better default desktop QML UI widgets.
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.
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".]
Ping me if you want to see it. Planning to open source it soon.
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, …
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.
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).
So it's smart for Github to build tools that lower the bar for a) understanding git, and b) using git's more powerful features.
Useful metrics would be things like the percentage of users who use the pull request flow, use it with at least one comment per pull request, have pull requests that get revised, etc. etc.
I'd guess that part of the growth potential driving Github's valuation is the notion that git's power features add significant productivity/value and that github is uniquely positioned to let a significantly large number of developers and teams make optimal use of those features for development and collaboration.
About which powerful features are you talking about, does anyone have a link with some more in depth informations?
Even the command line git itself is really nice because it gives you the current condition of your repo and suggestion on what you can do next. You have changes, if you want to commit use this command or if you want to add use this command.
But then you start talking about pull requests, which are not a feature of git. They are specific to github (e.g. try finding a PR comment in the git repo).
Does the new tool help with advanced git stuff, or does it just serve the github workflow?
At this point I don't think the tool does all that much advanced stuff, but the focus appears to be on understanding git at a level required to understand the more advanced features... so actually more focused on the semantics of git than on specific workflows.
Actually, they are[1], though github pull requests appear to be designed in a way that is not interoperable with the native feature.
[1] = http://stackoverflow.com/questions/9630774/how-to-make-pull-...
not sure how them hosting public projects adds directly to the bottom line
They get a ton of feedback and insight from non-paying users. The usage and feedback can drive both the product and business roadmap for their enterprise offerings.Every developer who enjoys using it for personal or open source is also likely to recommend it to their employer as well. I know I have helped drive adoption in a few organizations.
GitHub isn't just 'distribution' it has required a huge amount of investment and focus by individuals who need to make money to feed their families and prosper.
The fact that it is GitHub that we're talking about, and the fictional repos that you imagine would spring up proves the point - in the real world, open source is subsidized by closed source.
Companies like CoreOS, Mesosphere, all fall under this umbrella, where you could technically glue all their open source components together to form their main product, but it would take you quite a bit of time to support.
Github is sort of like this. They contribute a ton to open source, and are built mostly out of open source components (that ARE open source). But their website is really just a glue to all their infrastructure, and that's closed source.
That's not true, they have lots of open source projects under their organization: https://github.com/github. It's not enough to build your own GitHub clone, but some significant parts are being developed in the open (jekyll, hubot, linguist, ..)
This makes it sound like Github develops and open sources git, which it doesn't. They just built on top of it and have no control over the roadmap.
EDIT It's the same motivation as Oracle's recent "reverse engineering" drama, they don't want you to have the source. Will this end up true: those who sacrifice freedom for free deserve neither ?
[BTW: Franklin's "essential liberty" was actually self-government requiring taxation - like github charging; "purchase a little temporary security" was gifted funds for defense of the frontier - like donatiomware (e.g. OpenSSL after heartbleed). https://www.lawfareblog.com/what-ben-franklin-really-said ]
Again, lots of good has come from GitHub, not limited by:
Competition
Publicity of Git
Awesome free hosting for countless FOSS projects!
[1] http://gitup.co/
I had some problems with it keeping changes synced with the file system, though (on Mac OS). E.g., I'd change something in my editor and SourceTree wouldn't pick it up until I reopened the repository in SourceTree.
I also prefer a single window like GitHub's app, but that is a minor annoyance. The non-syncing made SourceTree unusable after a while, and I went back to GitHub for Mac.
I wish Atlassian would put out an update, because I'd prefer to switch back.
I'll try GH Desktop, but for the past few months mine's been broken where it loses my repos, so I've been using ST exclusively :)
(I don't see why this is being modded down - is it because I failed to mention I'm also using it in Windows?)
Github For Windows used to be as important to my workflow as my code editor. I absolutely loved the "click to select which lines to commit" feature, and I'm pretty sure it improved the quality of my commits drastically. And it was constantly improving.
A few weeks ago came a new version that changed everything. Previous updates used to be incremental, but this one seemed to replace everything at once. Overall the UI was still good, even though important parts became hidden behind tabs. But the performance... Oh god the performance. Syncing repos became a multi-minute operation. Listing commits went from instantaneous to taking several seconds. It became so unusable I switched back to Linux for development.
Common core+separate native UIs will always be the best sort of cross platform app in my eyes.
I am also building a Git client but building it using Electron.
Github for Mac is quite good already for commiting and pull-requesting. I could stop using my browser (for Github, at least) if they put issue management (open, close, view, comments) in there too. Would be awesome and a more unified experience.
At this time, we're focused on optimizing the Mac and Windows experience. We're always thinking about potential improvements for the diverse needs of our users, though!"
https://help.github.com/desktop/faq/articles/why-don-t-you-s...
Something tells me that the Linux version will come up later.
I've had the same experience. SourceTree has gotten better since I've started using it, but I frequently get hangs on commits and pushes on one of my machines. So much to the point that I downgraded to an older version of SourceTree.
One of the only things I miss after switching from OSX to Windows last year is Gitbox - http://www.gitboxapp.com/ - it's not free, but for what I do, it really did the trick.
This new desktop version of Github looks a lot better than its predecessor, but I need to play with it more. It does feel a lot more like Gitbox to me than SourceTree.
I haven't had much of a chance to play with GitHub Desktop yet, but it can only be a good thing for the users of all Git clients - nothing like a bit of healthy competition :) However, SourceTree's focus will remain on providing the best possible experience for professional teams using Git (and Mercurial).
it is just insulting that GitHub continues to Treat linux has a second class citizen when with out Linux Git would not be a project...
GitHub has 6 pages of public repositories (https://github.com/github) that you can peruse. To pre-empt your response, yes, they aren't all open source projects that GitHub has released. But a great many of them are. Some of their popular projects include things like Atom, Hubot, Boxen, Linguist, and many more.
They also have developers who contribute to a great many other projects as part of their daily work; Ruby springs to mind - Aman Gupta and Charlie Somerville have contributed quite a lot. And they pay at least two people to work effectively full time on git itself.
But don't let facts get in the way of your rant.
The other projects are irrelevant, I'm talking about contributing to the core product they are vampiring off of.
You specifically said that GitHub does not participate in the open source community and I think I've amply demonstrated that you're incorrect. If you'd like to continue to argue the point, I'd appreciate some facts.
It's similar to Microsoft hiring a bunch of Linux developers to continue developing. Yeah, this is good for marketing checkboxes of 'supporting the open source community', but from the perspective of a developer in that community, it's worthless.
What would be nice is if they hired new developers to work on git so the community actually grows and gets something.
They are paying people who would otherwise work on Git in their spare time to work on it full time. That is a net win for everyone who uses git.
I'm going to give up at this point and just accept the fact that you're going to spin it such that any commercial entity that uses open source and doesn't open source their core product is a parasite. I think you're wrong, but you're certainly entitled to your opinion.
You're not entitled to your own facts, though.
These aren't my own facts. This is based on what I've seen with open source contributors for a long time. Rather than companies contributing code or their own engineers, they just hire an existing contributor to keep doing what they do. I'm not arguing that this is bad, I'm saying that they should be put on a pedestal for essentially throwing money at something that they depend on anyway.
I see I've struck a nerve with github fans, but be honest with yourself. Do we say oracle is a great open source contributor because they have java language devs?
Hell, the kernel is even open source. But it doesn't mean anything because their ecosystem is still closed.
Lots of companies throw money at some open source developers to continue developing what they were already doing. That doesn't make the company any more open source friendly. It just makes them a funding source for people doing the real work.
Contrast that with a company like Red Hat that bases everything on improving and supporting open source. People used to give them crap for RDO, but that's nothing compared to closed ecosystem github built on top of open source.
Github is just as supportive of open source as Stackoverflow (superficially). They just get a lot of credit by association for real open source products hosted on their platform.
Seriously, I get it, people don't love git's choice of verbs and syntax. Picking different ones arbitrarily helps no one however.
Trying to provide support for Linux software could also potentially be nightmarish given the innumerable factors at play. There's no end to the number of ways any given Linux box may be set up.
I hear this often about Linux and don't really understand what people mean. Interested to hear someone else's perspective.
From my perspective, there are options in the Linux world but a pretty clear beaten path of common choices. The one choice you have to make is the toolkit - QT or GTK+ - but that seems like it. In terms of things like sessions, caching all the distributions follow the same standard (e.g freedesktop.org)
- Have other people committed things to origin on any of my repos?
- Do I have uncommitted changes on any of my repos?
- Notifications for when people push
Basically this but focusing more on collaboration.
I wanted to know that too, so I made https://github.com/shurcooL/gostatus for my Go repos.
What is actually new here? I know the native GitHub GUI app has been available for a number of years before now.
I wish it had the code review, commenting, issue tracking of the web app in a desktop application, all in one place. It's a pain to move constantly between the editor, CLI/SourceTree and Github web app for everyday tasks.
Simple operations are quick and intuitive. If you need anything more advanced, a git shell for the current project is just 2 clicks away.
Having all the visual diffs readily available in the client before committing is quite convenient, as is being able to push your branch and open a pull request for it at the press of a button.
I'm hoping issues and PR management is next on the plate. You can open PRs from the client right now, but to review and merge them you'd still need to open a browser.
Can't speak to any more advanced differences though. I'm still very, very new to git.
OS X 10.9 and later includes Git, so GitHub Desktop will no longer install Git as part of its command line tools.
The version of Git you have installed through GitHub Desktop is no longer supported. It's recommended that you uninstall it as soon as possible.Would it not have been better if GitHub Desktop was a seperate application that gets permissions (for example via OAuth 2.0) as an application in the "Authorized applications" section of the GitHub profile?
Or am I missing something here?
Took me a while to figure out how do do them via the UI, it's not immediately obvious that the side pane (which tries to take you to the web site for submitting pull requests) has nothing to do with local merges, which are now accomplished via an option that only appears when you're comparing branches (on the new timeline/graph thingy).
One theory I have is that our default upstream branch isn't master, but I'm not sure where to set that in the app. Anyone else noticed this?
I like GitHub for the basic "see what you're committing and commit it" work flow, using the command line otherwise, but I suppose I'll switch to Sourcetree for now.
• the ability to organize repos by organization or with custom folders/lists
• the option to open a repo in a new window by right-clicking on one from the list in the left column
On the downside, utilities like tagging, blame and stash do not seem to exist. The account linking system from the old GitHub client hasn't changed and you can't clone from anywhere that isn't GitHub. Revision history is a bit ~too~ simplified and you can't really see at a glance what branches are deriving from where, and you can only see the history of one branch at a time.
I'm sure newbie developers on Github might appreciate the simplified UX/UI, but it's missing a ton of features that are useful in an environment with multiple devs.
This feature drove me nuts with their old client. One day they're going to realize that it throws away a very useful Git feature.
A few years ago we tried setting up marketing's content creators on the Mac GitHub client. After that, far too many conversations went like this:
"Try pulling the new changes."
"Um... pull?"
"Right, sorry, forgot. Hit sync to pull down the new changes."
"But won't that push my mods?"
"I suppose... I don't know."
"I don't want to push my stuff yet."
"OK, dammit. Open a terminal..."
But there's an immediately obvious bug, the middle pane keeps resizing to become wider every time you switch between repos.
Also, one large repo I had simply shows 0 commits. It worked just fine before. And another even larger repo works fine.
Still using GitExtensions. This has a nice interface for hobby projects, but when working with "enterprise" huge projects at work - it lags noticeably.
Shouldn't it be opt-in and not opt-out?
hate when i have to code review some contributor and the site just says "oh, i will not bother showing any change on that file"... so i have to download their branch, run diff on the awesome `meld`, which kicks their visualization anyway, but then the only good thing about github: inline comments on code reviews... goes away. i have to either email or add lose comments on the code review panel with what i think.
but hey, now we can have the same crappy experience on (selected) desktops! hooray! well, at least you managed to get me to write an offense on a public forum. that is something. you wankers.