Introducing GitHub For Windows

github, git, code 0 comments suggest edit

For the past several months I’ve been working on a project with my amazing cohorts, Paul, Tim, and Adam, and Cameron at GitHub. I’ve had the joy of learning new technologies and digging deep into the inner workings of Git while lovingly crafting code.

But today, is a good day. We’ve called the shipit squirrel into action once again! We all know that the stork delivers babies and the squirrel delivers software. In our case, we are shipping GitHub For Windows! Check out the official announcement on the GitHub Blog. GitHub for Windows is the easiest and best way to get Git on your Windows box.

gh4w-app

If you’re not familiar with Git, it’s a distributed version control system created by Linus Torvalds and his merry Linux hacking crew. If you are familiar with Git, you’ll know that Git has historically been a strange and uninviting land for developers on the Windows platform. I call this land, Torvaldsia, replete with strange incantations required to make things work.

Better Git on Windows

In recent history, this has started to change due to the heroic efforts of the MSysGit maintainers who’ve worked hard to provide a distribution of Git that works well on Windows.

GitHub for Windows (or GH4W for short) builds on those efforts to provide a client to Git and GitHub that’s friendly, approachable, and inviting. If you’re a Git noob, this is a good place to start. If you’re a Git expert on Windows, at the very least, GitHub for Windows can still be a useful part of your workflow. Just visit http://windows.github.com/ and click the big green download button.

In this post, I’ll give a brief rundown of what gets installed and how to customize the shell for you advanced users of Git.

As the GitHub blog post shows, you can easily access and clone repositories on GitHub either by clicking the Clone in Windows link from a repository on GitHub.com itself, or by cloning a repository associated with your account directly from the application.

The application allows you to browse, make, revert, and rollback commits. You can also find, create, publish, merge, and delete branches. I’ll go into more details about this sort of thing in future blog posts. In this post, I want to talk about what gets installed and then cover customizing the Git shell we include for you advanced Git users.

Installation

If you’ve ever read the old guide to installing msysgit for Windows on the GitHub help page, you’d know there’s a lot of configuration steps involved. We use ClickOnce to install the application and to provide Google Chrome style silent, automated, updates that install in the background to keep it up-to-date.

GH4W is a sandboxed installation of Git and the GitHub application that takes care of all that configuration. Please note, it will not mess with your existing Git environment if you have one. There will be two shortcuts installed on your machine, one for the GH4W application and another labeled “Git Shell”.

The Git Shell shortcut launches the shell of your choice as configured within the GH4W application’s options menu. You can also launch the shell from within the application for any given repository.

gh4w-default-shells

By default, this is PowerShell but you can change it to Bash, Cmd, or even a custom option, which I’ll cover in a second.

Posh-Git and PowerShell

When you launch the shell, you’ll notice that the PowerShell option includes Posh-Git by Keith Dahlby. I’ve written about Posh-Git before and we love it so much we included it in the box. This is an even easier way to get Posh-Git on your machine and stay up to date with the latest version.

You might notice that our PowerShell icon doesn’t execute your existing PowerShell profile. We worried about conflicts with existing Posh-Git installs or whatever you might have. Instead, we execute a custom profile script if it exists, GitHub.PowerShell_profile.ps1.

Just create one in the same directory as your $profile script. In my case, it’s in the C:\Users\Haacked\Documents\WindowsPowerShell directory.

Custom Shell

I’m a huge fan of pimping out my command line shell with Console2. As the previous screenshot shows, you can specify a custom shell like Console2. However, when you launch a custom shell, it won’t load our profile script and also won’t load the version of Posh-Git that we include. However, we added an environment you can check within the Microsoft.Powershell_profile.ps1 script.

# If Posh-Git environment is defined, load it.
if (test-path env:posh_git) {
    . $env:posh_git
}

The benefit here, as I mentioned earlier is that you won’t have to worry about keeping Posh-Git up-to-date since we’ll do it for you as part of GH4W updates.

What’s Next?

I’ll try and cover a few other topics later. For example, GH4W works with local Git repositories as well as those from other hosts. I’ll also try and cover how I fit GitHub for Windows into my Git workflow developing with Visual Studio. If you have other ideas for topics you’d like me to cover, let me know.

In the meanwhile, try it out!

If you have feedback, mention @github on Twitter (hashtag #gh4w). We make sure to read every mention on Twitter. If you find a bug, submit it to support@github.com. Every email is read by a real person.

But of course, I expect many of you will comment right here and I’ll do my best to keep up with responses because I love you all.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.

Comments

avatar

96 responses

  1. Avatar for Timur Kristóf
    Timur Kristóf May 21st, 2012

    Hey Phil,
    Does this app work with other git providers out there (such as Gitorious or one's own server) or it's GitHub-only?

  2. Avatar for haacked
    haacked May 21st, 2012

    Timur, it works as a regular git client as well. There's no integration with other Git hosts, but you can drag a local clone into the app and push to those remotes.

  3. Avatar for Craig
    Craig May 21st, 2012

    It looks amazing. I love how easy it is to clone and work with github repos. My one concern is that it may oversimplify some things. It is not particularly clear what the magical sync button does. Does it attempt to merge in any way after pulling?
    I would also love to see a pretty commit graph that shows exactly what is going on.

  4. Avatar for Erik Reynolds
    Erik Reynolds May 21st, 2012

    This is great! Very excited to start using this.
    Are there any plans to support CAS for GitHub Enterprise users or is my only workaround to swap to LDAP authentication for now?

  5. Avatar for George Diab
    George Diab May 21st, 2012

    "I’ll also try and cover how I fit GitHub for Windows into my Git workflow developing with Visual Studio."
    YES PLEASE!

  6. Avatar for Terry
    Terry May 21st, 2012

    Can't remember where I read the comment when initially setting up msysgit on Windows when switching to Git ~8 months ago...but thought I read something about Git (or maybe msysgit) not performing as well on Windows as it does in Unix environment.
    Guess this comment can be twofold. First, how much truth is there to that comment (let me know if you want me to try and find the exact quote)? Second, does GH4W sit on top of msysgit?
    UI/client looks great. Was just curious if there were any *performance boots* (presentation boost is quite obvious :)) in using it over msysgit/Console2 directly (my current setup).
    Thanks in advance.

  7. Avatar for Rob White
    Rob White May 21st, 2012

    Is this open source? It'd be very interesting to see the guts of it.
    It seems almost too simple, but maybe that's exactly the point of it. If that's the case, it's brilliant.

  8. Avatar for Antoine
    Antoine May 21st, 2012

    Congrats Phil, it's awesome. Finally a good way to have a clean graphic view / manager of a git repository on Windows. Thank you (and your team), veeeeeery much !

  9. Avatar for Mike
    Mike May 21st, 2012

    You guys did great, I have not used Git yet, because I didn't like the options on Windows. With this new option I will try it.

  10. Avatar for Marc Scheuner
    Marc Scheuner May 21st, 2012

    What all non-English speaking users of Git on Windows probably need *THE MOST* is a GIT client that **actually** truly supports UTF-8 and thus things like German umlauts (ä ö ü) and French accented characters (é à è) and other non-7-bit ASCII characters.
    Yes yes, I know - the current MSysGit client *claims* it supports UTF-8 but it really doesn't. At least not if you have a Windows client connected to a Linux repository - from Mac and Linux clients to the repo, it appears to work - but Windows users are left out in the cold.
    While this is annoying in check-in comments and such - it's downright a BLOCKING error when you happen to have a file name that contains one of those characters (e.g. "Gesamtübersicht.rpt" or something like that). MSysGit currently will **simply NOT** check in any such file.......
    This is really really annoying - for the vast majority of non-english speaking programmers out there......
    FIX THIS and the acceptance rate of Git in the Windows community will skyrocket....

  11. Avatar for David Zidar
    David Zidar May 21st, 2012

    Not sure where to report issues, but it refused to push to github with an empty proxy string in my .gitconfig "GitHub.IO.ProcessException: error: Couldn't resolve proxy '(null)'"
    Good thing there was a log file or I would have been stuck!

  12. Avatar for Q
    Q May 21st, 2012

    Rock on you “Windows Badass”

  13. Avatar for David Zidar
    David Zidar May 21st, 2012

    I guess I should have finished reading the blog post, I've now sent an email to support@github.com
    Keep up the good work!

  14. Avatar for Luke McGregor
    Luke McGregor May 21st, 2012

    This is very awesome :)

  15. Avatar for Borek Bernard
    Borek Bernard May 21st, 2012

    The absolutely first impression was "why do they want my password when GitHub has OAuth?"
    Looking forward to try it out!

  16. Avatar for Borek Bernard
    Borek Bernard May 21st, 2012

    I've seen just positive responses all over the place so let me add a view from another side.
    I've tried gh4w for about 5 minutes and simply can't imagine this being my Git client of choice. Or, being my Git client at all.
    The UX is pretty rough around the edges at the moment (e.g., I wanted to add an existing local repository to the list of repositories so I clicked "Add", this to my surprise displayed the create new repository form with the first item, repo name, already marked as invalid even before I had a chance to do anything; I could name a few other things just after the first 2 minutes with the app, it certainly didn't leave a good impression). Also, there is just very basic functionality there which might be OK for the first release but even that basic functionality is quite hard to use, for instance, on the commit screen it's very hard to view what actually changed in the files. Larger diffs are not fun to go through, there is no way to launch a 3rd party diff tool (is it?) etc.
    I kind of understand why this app was created but if you claim that this app is "The easiest way to use Git on Windows. Period." I have to strongly disagree. What might be slightly hard or confusing for newcomers is the original configuration of Git and gh4w does a good job of installing all the prerequisites but beyond that it is inferior to other Git clients in almost every way I can think of (features, usability, fit and finish etc. - the Metrotwit style might look fancy but I don't think it actually helps to do the job).
    I think that of greater value would be some kind of installer that would install MSysGit, posh-git, TortoiseGit, create SSH key, upload it to GitHub, do some initial configuration locally and then just display a big message "now use your Explorer and TortoiseGit in it (or install Git client of your choice)".
    I appreciate your attempt on a usable Git client for Windows but I don't think this one is it.

  17. Avatar for James Manning
    James Manning May 21st, 2012

    I tried to find the source for it under github.com/github but I don't see anything that seems to be a match (although some of the underlying libs seem to be there).
    Is the source available?

  18. Avatar for James Manning
    James Manning May 21st, 2012

    @Borek - IMHO they're likely (at least, hopefully) adopting the 'release early, release often' and released with something akin to a Minimum Viable Product :)
    Seeing fast iteration is far more important than what happened to be in the v1 bits, IMHO. :)

  19. Avatar for Daniel
    Daniel May 21st, 2012

    How about "open sourcing" the interface?

  20. Avatar for David Fowler
    David Fowler May 21st, 2012

    No jabbr room? Fail...

  21. Avatar for flukus
    flukus May 21st, 2012

    Any plans for git-tfs integration?

  22. Avatar for Craig
    Craig May 22nd, 2012

    Borek, I tend to agree with you. The most difficult part of Git for Windows users is all the Unix type configuration, ie installing the right bits in a language they know, creating SSH keys etc. Wrap this in a nice interface and all is good. Actually using the Bash command line and Git Extensions is then very easy.

  23. Avatar for davidacoder
    davidacoder May 22nd, 2012

    I think this is the best thing that could have happened to git on win, fantastic work!
    I just wish github would (I guess in general) be more open to the distributed nature of git. I feel you guys are constraining git a lot by having hierarchies all over the place, where git doesn't. I have in mind that a) you can only create one fork per project per user, b) that forks have a parent-child relationship, c) in gh4w you now have a primary remote, d) gh4w doesn't even show the other remotes and it is unclear how that would work with the "sync" terminology.
    I actually think it is good that novice users don't have to deal with this whole idea of a network of repos etc. But I wish you would allow power users to get away from these limitations that github imposes on git.
    But then, I also I hope you will iterate fast and often and maybe these are things for an update :) Open sourcing it would obviously be the really cool thing to do.

  24. Avatar for Timur Kristóf
    Timur Kristóf May 22nd, 2012

    Hey Phil, thanks! This is just awesome! :)

  25. Avatar for Patrik Svensson
    Patrik Svensson May 22nd, 2012

    Really great! But... where's the source?

  26. Avatar for Ian Pettman
    Ian Pettman May 22nd, 2012

    We've been using smart git for nearly a year. Sorry, but at this moment I dont regret the cost of the licences. Its become a really polised product

  27. Avatar for Michael Kingsford Gray
    Michael Kingsford Gray May 22nd, 2012

    After perusing this cryptic article, I still have zero idea of what 'github' is, nor what it is supposed to achieve (for me).

  28. Avatar for Alexander DiMauro
    Alexander DiMauro May 22nd, 2012

    I agree with James Manning. They even state quite clearly that this is going to have a background update feature like Chrome, and update itself over time. They could have waited to add a lot more features before release, but why? Better to let it out into the wild and get feedback from real users, IMHO.
    It's a starting point. And, personally, I like it a lot. I'm certainly not ready to switch from Tortoise Git to this full-time, but over time, as more features are included, this could very well become my client of choice. We'll see where this evolves to over time. Great work!

  29. Avatar for Otto Fowler
    Otto Fowler May 22nd, 2012

    How does this relate or work with GitExtentions?

  30. Avatar for Artiom
    Artiom May 22nd, 2012

    I was wondering what Git functionality is supported?
    I've got a repository on GitHub that uses git submodules, and it seems like most clients out there lack proper support for that, unfortunately.. Will this client have support for that?
    Also I can see the interface shows the origin. Will it also show other remotes, or should that be better managed in the console?
    For the sake of an example, my repository is at https://github.com/ArtiomChi/Dual-Battery-Widget

  31. Avatar for Thomas Freudenberg
    Thomas Freudenberg May 22nd, 2012

    Artiom, windows.github.com/help.html states regarding remotes:


    Multiple Git remotes & non-GitHub remotes
    GitHub for Windows does not support multiple Git remotes and it will only work with the origin remote. If you wish to push & pull to other remotes, we suggest you use the command line client that is included with the application.
    GitHub for Windows is optimized to work with GitHub remotes — but if you wish to use a non-GitHub remote, it will work just fine. Set the remote manually in the settings tab and everything else should work as expected. You can also drag in repositories from the file system and GitHub for Windows will respect the configuration of the origin remote.
  32. Avatar for Anders
    Anders May 22nd, 2012

    For the next version, please use a engine for inline diff such as DiffPlex (used by CodePlex)

  33. Avatar for Brandon
    Brandon May 22nd, 2012

    I have been using a windows client for a while now, http://code.google.com/p/tortoisegit/ . And it works very similar to the tortoiseSVN everyone is already use to. Why would I switch?

  34. Avatar for vbigham
    vbigham May 22nd, 2012

    No built in Twitter client? Epic fail! Just kidding, I was wondering when we would have a graphical Git client for windows. Props to you and your team for getting it done first.

  35. Avatar for Version Control Noob
    Version Control Noob May 22nd, 2012

    I heard about this from the Hanselman Podcast and was excited. I've been wanting to use Version Control for my own projects, and tried git a while ago but found it incompletely intimidating. I was hoping this was the answer I was looking for. But it seems like I still need an understanding of "plain ole git" to get started. I need a "GitHub for Windows for the Absolute beginner" set of instructions. Does something like this exist?
    Thanks

  36. Avatar for Mario
    Mario May 22nd, 2012

    Haters gonna hate...

    Great Job!

  37. Avatar for haacked
    haacked May 22nd, 2012

    @Timur yes. You'll need to use the Git Shell to clone it locally following the instructions from the other hosting provider. Then drag the local repository into the application.
    @Craig: Sync does a git pull --rebase and then a git push if you have any local commits.
    @Terry no idea about the perf differences between Windows and Unix. I haven't had any problems. GH4W does sit on top of msysgit and libgit2.
    @Erik: I'm not sure about CAS support. Probably something we'll want to look into.
    @Rob, @James, @Daniel, @Patrik: at the moment, it is not open source. Many of the libraries we created are open source. As we polish up more and more of those libraries, we'll release more components we used to make the app.
    @Borek thanks for the feedback. We actually do install msysgit and posh-git and such. So if you don't like the UI, you can simply take advantage of the pre-configured shell we install.
    @Marc yeah, we've run into some of these issues. We'd like to try and work with the Git and MSysGit team to supply patches.
    @flukus not at the moment
    @davidacoder supporting multiple remotes is something we'd like to do. We wanted the first release to be simple and support the mainline scenarios. We didn't want to rush support for multiple remotes. If we implement that, we want to make sure the UI is elegant and approachable.
    @Otto: no relation to GitExtensions.
    @Artiom: At the moment, we don't have good support for submodules. We plan to improve that over time.
    @Version control noob: Try this http://git-scm.com/book/ch1-3.html

  38. Avatar for haacked
    haacked May 22nd, 2012

    Borek, regarding your Oauth question, yes GitHub supports OAuth but git does not. We need your credentials so that GitHub for Windows can act as your HTTPS Credential Provider.

  39. Avatar for jittuu
    jittuu May 22nd, 2012

    That's awesome. :)

    but.. it will be better if
    1. GH4W list the vs solution files
    2. launch visual studio from GH4W
    thanks.

  40. Avatar for Another Craig
    Another Craig May 23rd, 2012

    Thanks Phil, it's an awesome app, I think all the noise is just because everyone is really excited about it.
    Are you going to put up a uservoice site for feature requests?

  41. Avatar for Craig
    Craig May 23rd, 2012

    Is there any way to do multiple select discard changes? If I have several files doing them one at a time is quite painful.

  42. Avatar for James C
    James C May 23rd, 2012

    Looks like it's off to a good start, thanks Phil!
    It would be great to have a way to launch a different difftool from the file list, for example KDiff3 or other (user-configurable, similar to how you do the shell extension).

  43. Avatar for Vahid Hassani
    Vahid Hassani May 23rd, 2012

    what does this error means?


    Error: An error occurred trying to download 'github-windows.s3.amazonaws.com.
  44. Avatar for Vahid Hassani
    Vahid Hassani May 23rd, 2012

    After trying again, The error was resolved automatically!
    I think the problem was in internet connection.
    Thanks

  45. Avatar for Marc Troy
    Marc Troy May 23rd, 2012

    Hi,
    Is there a way to disable the Metro theme and use the native Windows UI?

  46. Avatar for David Jørgensen
    David Jørgensen May 23rd, 2012

    Seems excellent..
    I have been trying the app all morning, and so far it seems really really cool. I am, however, having trouble syncing to github.
    I have dragged my local repositories into the app, and it has "connected" the local repository to the github repository, but when i try to sync it says:
    "failed to sync this branch - you might need to open a shell and debug the state of this repo".
    Opening the shell and just typing "git push" works just fine.
    fyi: i am absolutely no git expert, so have no clue what to do next.

  47. Avatar for Jesse Brown
    Jesse Brown May 23rd, 2012

    You said I can easily plug in console2, but I'm not seeing how I can actually make it open the directory of the repository I've clicked on. I can't use -d "%1" as the input box restricts it to no parameters.

  48. Avatar for Alexander DiMauro
    Alexander DiMauro May 23rd, 2012

    @Version control noob: If you're still reading responses...just today PluralSight published a 'Git Fundamentals' video series: www.pluralsight-training.net/.../TableOfContents

  49. Avatar for Jason
    Jason May 24th, 2012

    Good to have another Windows Git tool, but unlike claims in the article and comments, I never had a problem installing Git on Windows before this!
    msysgit was not hard to install and connect to GitHub etc, it is just that it requires knowing a few Unix commands and using Git on a command line. There was bit of config (.gitignore for instance), but not hard for a developer (which I'm assuming most people using Git on Windows are).
    Git Extensions was even easier and more fully featured. It uses a Windows installer (no more difficult than installing MS Office or anti-virus software for instance), and there are options to install SSH client (PuTTY or OpenSSH) diff tools (KDiff3), Visual Studio plug-in and so forth. By default you also get a sensible .gitignore configuration for Visual Studio.
    Since the Git Extensions installer also installs an SSH client, then you can connect easily to an remote repository. (The lack of an SSH client being included with Windows is a stumbling block for other Git GUI software on Windows, as Linux and OS X have SSH included so no need to install).

  50. Avatar for haacked
    haacked May 25th, 2012

    @jittuu That's a neat idea. I'll think about it.
    @Another Craig: The official support channel is support@github.com. We probably won't be putting up a UserVoice site.
    @Craig: No, we don't support multiple select discard changes and I too feel the pain of that.
    @James C: So right click on the file and launch Diff? Interesting idea.
    @Vahid: Good to hear!
    @Marc: Nope. We didn't make it themeable.
    @David: please send email to support@github.com with your repro steps and your Log file. Go to options > about github for windows and there's a button to grab the log at the bottom.
    @Jesse: Select Custom Shell and enter the path to the Console2 exe. No need to pass in -d. We set the working directory when we launch the custom console.
    @Jason: I never claimed *you* had a problem installing Git on Windows. I claimed a lot of people have, which is clear if you take a look around the net. Glad to hear you've had no trouble in the past.

  51. Avatar for Yosy
    Yosy May 25th, 2012

    Hi,
    This application is so cool, installed it immediately!
    I am a C# Developer and I am wondering how you made the "Clone in Windows" buttons launch the "GitHub" software?

  52. Avatar for Tsavory
    Tsavory May 26th, 2012

    Well I just want to say that after playing around with this for a while it does the job that it clams to do. Its a simple windows installer that lets someone get msysgit and other tools installed and working.
    It took a few plays to figure out how to get a local repo to connect to github and sync. But all in all it was pretty easy. Some people have a hard time getting it all setup for me it was just time consuming the first time.
    I like the fact that it don't mess with any settings that you have for smartgit or msysgit that we my all ready have setup as I have both of them already.
    @Borek thats great that you don't like and think it should be done different now go a head and do it make your wonderful installer to do exactly what you want I am sure many of us will be happy to try it out. Until then this is a decent low learning curve setup. and you don't like the GUI use the shell with whatever shell you prefer.

  53. Avatar for davidacoder
    davidacoder May 26th, 2012

    Played with it some more and this is just really slick and cool.
    After playing with it for a while I am now even more convinced that multiple remotes is probably the most needed next feature. In particular, it seems that one of the most common workflows probably can't be done right. Here is what I have in mind:
    1. Surf to some cool open source project on github
    2. Want to try it, so click "Clone in Windows"
    3. Play with it locally. Find something where I can improve things and do it
    And now I am probably stuck because I can't get this out of my local repo from within gh4w, right? I would have needed to first fork on gh, then clone my fork. But when I cloned I didn't really want to create a fork because I never planned to contribute anything, that only came later.
    Actually, gh4w actually even tries to publish my changes back to the read only public repo and then tells me that there was an error. Really there shouldn't even be a button "publish" if the remote is access via the git protocol.
    Alright, you guys are probably working on that already in any case ;)

  54. Avatar for davidacoder
    davidacoder May 26th, 2012

    Can you say something about your choice of "pull --rebase" for sync? I've never used --rebase with a pull, the man pages say it is dangerous, so I am wondering a) why you go that way and b) whether there is something one needs to be careful about for that reason.

  55. Avatar for LeoR
    LeoR May 26th, 2012

    Hi Phil,
    Can you write another post (or post refs) talking about how you did the great "Click Once" installer and seemless upgrades, especially with all the different components you are installing... and how the hell did you get all this to work on XP and why!!!??? That is not easy to do with all the "moving parts" you have in there.
    Also maybe explain why you chose the Lib's you did and problems you were trying to solve, specially: CefSharp, Akavache, Markdown!!(what secret Ninja stuff is this), why JSON.NET and RestSharp?, what are you putting in the "Roaming" directory and why (click once is per user per machine)?, and finally Microsoft.WindowsAPICodePack.dll (assume this is just for PowerShell?)
    Is the source for this app open-source and is it in GitHub :-)?

  56. Avatar for Filip
    Filip May 26th, 2012

    Very nice :)
    I'm patiently waiting for GitHub issues integration (seriously guys - you need to make issues that span repos for enterprise customers) and submodules.

  57. Avatar for matthias
    matthias May 29th, 2012

    I downloaded, installed and played around with it.
    But I can not see ANY reason, why I should use it?
    I removed and will use Git Extensions like I did in the past, which is much more fully featured.
    Sorry guys

  58. Avatar for narkq
    narkq May 31st, 2012

    Hi.
    I suppose it should be mentioned that if you're getting an error like this
    An error occurred trying to download 'github-windows.s3.amazonaws.com.
    and error log ends with something like this
    Launching Application.
    URLDownloadToCacheFile failed with HRESULT '-2146697208'
    An error occurred trying to download 'github-windows.s3.amazonaws.com.

    and everything is fine with your internet connection,
    then you can try opening github-windows.s3.amazonaws.com/GitHub.application directly in internet explorer and then it should work fine.

  59. Avatar for Darren
    Darren May 31st, 2012

    The UI on this is almost enough to make me switch from Mercurial to Git... OK, I said almost.
    Unfortunately I can't the thing to work! When I click the 'Clone in Windows' button on a repository in GitHub (eg https://github.com/RobinHerbots/jquery.inputmask), the project loads in the app, begins to clone, gets to 9% and hangs there. This happens on any GitHub repo I try to clone (and always at 9%). The folder for the project is created in Documents\GitHub, but that's as far as it goes. Anyone else had this?

  60. Avatar for Darren
    Darren May 31st, 2012

    Oh, don't worry - I didn't realise that Git requires it's own port through the firewall (why on earth??) and I'm on a corporate machine. No worries then...

  61. Avatar for Christer
    Christer June 1st, 2012

    I got the same problems as Darren;
    clone repo gets stuck at 9%
    But after a couple of reinstallations it worked, it got stuck at 9% for a while, but then it seemed to work. But I am unable to sync this repo...
    And I cannot clone any other repos...
    I have opened port 9418 in my router and in windows firewall - but it still doesn't work.

  62. Avatar for haacked
    haacked June 1st, 2012

    @Christer, please send an email to support@github.com with details and someone will try and help you out.

  63. Avatar for Mehdi Khalili
    Mehdi Khalili June 2nd, 2012

    Haacked - Is there any chance GH4W could simplify migration from BitBucket to GitHub? I recently had to migrate a project and I must say the experience was less than ideal. I have blogged about the glitches I had and how I overcame them; but I think this could be made SO much simpler and I cannot think of a better candidate than GH4W.

  64. Avatar for Afvallen Zonder Dieet
    Afvallen Zonder Dieet June 2nd, 2012

    Thanks a lot, i really gonna use this.

  65. Avatar for Martin berube
    Martin berube June 3rd, 2012

    Looks great. Unfortunately, every time I try to commit (local), I get a "Commit Failed" message with no further informations. Is there a way to get some help / log / explanation on why it fails ? It works properly using the command line ...
    Thanks for your help.

  66. Avatar for haacked
    haacked June 4th, 2012

    @Martin send an email to support@github.com

  67. Avatar for Steven Hancock
    Steven Hancock June 4th, 2012

    I rarely use Windows anymore, but I actually booted my Linux box into Windows 7 to give this a try. :)
    Could it use a little polish? Sure.. but it's not bad. It only took me a couple minutes to get up and running on a Windows 7 PC that literally only had Angry Birds and Starcraft installed (yes, I admit it, the few games I play are the reason I still keep a Windows partition around).
    Integration with Visual Studio would be nice.. but I'm curious about something else. Does it play well with other MSYS environments? More specifically, the MSYS "devkit" environments for RubyInstaller/RailsInstaller? On the rare occasions that I do boot into Windows, it would be really awesome to be able to work with Git and Rails (including building C extensions for gems) using GH4W and my choice of PowerShell or bash. :)

  68. Avatar for Tim Eagan
    Tim Eagan June 12th, 2012

    First - nicely done! This is just what I was looking for. Secondly, a suggestion, You should add "Look in the log for details." to the message "github for windows failed to sync this branch." along with instructions on where the log is/how to open it. "From the main screen, Click on [about github for windows] and the click the [open log] button".

  69. Avatar for Neil
    Neil June 21st, 2012

    Looks nice but hangs at 9% for me too

  70. Avatar for haacked
    haacked June 21st, 2012

    @Neil, send an email to support@github.com with details.

  71. Avatar for Jack Fox
    Jack Fox July 15th, 2012

    Any reason GitHub.exe opens a PS1 shell instead of PS2? Any way to get it to work in PS2?

  72. Avatar for Max Pavlov
    Max Pavlov July 16th, 2012

    Guys, application is a blast! This is an "etalon" application for Windows 8. But, how come a github, an open source community client isn't open source? Come on, share! Or at least a serias of articles entitled "how masterpiece was created" is due!

  73. Avatar for Akamaozu
    Akamaozu July 16th, 2012

    I used TortoiseGit but I never used Github before this, so this was an easy way to get started using their service, so that's definitely a win for them.
    I can't imagine this as my default Git client (TortoiseGit feels a like a more elegant solution .. don't start up anything ... it follows you around and is just a right-click away) but I do like the Metro UI and the ease of integration with Github.
    Great start guys! I have it paired with TortoiseGit on all my machines now. Hope it continues to get better from here on out :)

  74. Avatar for Arno Richter
    Arno Richter July 26th, 2012

    Is it possible to add a context menu entry to folders, so I can open the git powershell from every folder in windows and be in the correct directory already? I tried to do it myself, but I could not figure out whether "GitHub.exe --open-shell" had a parameter I could simply set to select the desired folder. Would be great if this was possible.

  75. Avatar for AlanO
    AlanO August 3rd, 2012

    This looks like it should be an awesome tool. But right now I'm experiencing an ENORMOUS anti-climax.
    I had a fiddle around with GH4W today and, surely, I must be missing something... I can't find a "windows" way to add and commit files to a local repository?
    GH4W is is a beautiful metro-style app, effortlessly making use of drag-n-drop for repositories - surely I should be able to drag-n-drop files too - rather than having to resort to laughably archaic command line operations, shouldn't I?
    Please tell me I'm missing something! If not, is the source available, as it would be a ridiculously quick operation to graft file-add/commit to it?

  76. Avatar for Archit
    Archit August 21st, 2012

    Hello Phil,
    I'd also like to chime in and request that github for windows be open sourced. :)
    I am keenly interested in the presentation part - as in how to design a good looking windows application!

  77. Avatar for Odelya
    Odelya August 23rd, 2012

    When I try to download from Amazon link and run it I get:
    ERROR DETAILS
    Following errors were detected during this operation.
    * [8/23/2012 11:54:31 PM] System.Deployment.Application.InvalidDeploymentException (Zone)
    - Deployment and application do not have matching security zones.
    - Source: System.Deployment
    - Stack trace:
    at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
    at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, Uri& appSourceUri, String& appManifestPath)
    at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available

  78. Avatar for Vivek Kaul
    Vivek Kaul August 31st, 2012

    0 down vote favorite

    I actually connect to a remote repository and can do so using git bash but not using gitextensions.
    git bash asks me for my password but GIT extensions does not. Does anyone have an idea why this will be the case?
    This is from GIT bash, which asks for my password whereas the GIT extensions does not ask for my password.
    $ git pull vkaul@stash.int.linz.jumio.com/git/OCR/ocr.git
    Password for 'http://vkaul@stash.int.linz.jumio.com':

  79. Avatar for David Piepgrass
    David Piepgrass September 18th, 2012

    This app gets off on the wrong foot, as it's just not obvious for a newbie what to do with it. I mean, after installation it offers one solitary option, unless I'm missing something: "create a repository." As a newb to Git I wonder: what does this mean? I know what I want to do: I want to fork or clone an existing project. Is that what "create a repository" does?? I'm not sure whether I should fork it or clone it (the maybe the app should help me decide), but if I click "create a repository" I am taken to the "new repository" page which asks for a name and a description... hmm... this really doesn't look like I'm connecting to an existing project.
    After seeing this I gave up on GitHub for a month and wondered if I should just break down and figure out how to use git command-line. I had no idea that one must use a web browser to Fork or Clone on github.com first, and then return to the Git App and click one's username to see the fork or clone listed.

  80. Avatar for Andy
    Andy September 19th, 2012

    Are there any plans to include a diff/merge tool, rather than using a 3rd party one?

  81. Avatar for David Piepgrass
    David Piepgrass September 23rd, 2012

    Hmm, I wonder if I got so confused because the "Clone in Windows" command on my home computer doesn't work. When I clicked "Clone in Windows", I am prompted to download GitHub for Windows, although it is already installed. This gives the impression that cloning is a task that must be done within the GitHub app, even though the GitHub app doesn't have a UI for cloning.
    At first I got the impression that it just didn't work in Firefox because I got it to work in IE... now I suspect the problem was that I was not signed in to GitHub on Firefox. Either way GitHub doesn't exactly guide one to the 'pit of success'.

  82. Avatar for haacked
    haacked September 23rd, 2012

    The "Clone in Windows" button doesn't work unless you're logged in. Also, you have to have logged into the GitHub for Windows application at least once so we know you have it installed.

  83. Avatar for Ian Joseph Fischer
    Ian Joseph Fischer October 5th, 2012

    This tool would be great if you could launch your preferred diff/merge tools such as winmerge.

  84. Avatar for Shaine
    Shaine October 9th, 2012

    nice article.
    I still cant however seem to work out how to configure Console2 so it loads the github profile script, and posh-git.
    I have my Console2 configured to default use Powershell.
    there is mention of placing a GitHub.PowerShell_profile.ps1 file where your $profile script is located.
    I found shell.ps1 in C:\Users\MyUser\AppData\Local\GitHub
    is this the profile script?

  85. Avatar for Shaine
    Shaine October 9th, 2012

    I actually did manage to get this to work, by following your instructions at haacked.com/.../better-git-with-powershell.aspx.
    this created and prompted me of the new Microsoft.PowerShell_profile.ps1 file created, and in here I created the GitHub.PowerShell_profile.ps1
    now I have Console2, running powershell, with all the extensions, yay!!!

  86. Avatar for Florin
    Florin October 12th, 2012

    Hello,
    Has anyone tried running PowerShell ISE as a default shell for github? PowerShell works just fine but I really want the tabs of the ISE, and the more advanced options. However when I set the path in GitHub to custom C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell_ise.exe the PS ISE won't load my Profile. The Execution Policy is set to Undefined and I get errors when trying to modify it because it runs without Admin Privileges.
    Any suggestions for this? Can I set-up GitHub to start the PS ISE in admin mode?
    Thanks

  87. Avatar for Florin
    Florin October 12th, 2012

    Update, I've just tried to open GitShell with Ctrl+Shift (Admin Mode). Now PS ISE starts in Admin mode as the profile loads, and Git seemed to be working, but it's not, git status works for example, but not git pull. So that sucks basically. Also Posh doesn't load. So no eyecandy git..

  88. Avatar for haacked
    haacked October 12th, 2012

    @Florin email support@github.com. You'll get a better response than commenting here. :)

  89. Avatar for Bhagwad Jal Park
    Bhagwad Jal Park December 2nd, 2012

    They should make it a bit easier to use. For example, there's no way to just delete an item I've added - or if there is, it's not easy to find.
    I've never used a version control system before and they really should make it more noob friendly.

  90. Avatar for anil
    anil January 29th, 2013

    I am using ruby on rails how its work?

  91. Avatar for David McGuigan
    David McGuigan June 6th, 2013

    This freaking rocks. Thank you so much.

  92. Avatar for rdingus
    rdingus October 23rd, 2013

    Hi All - I have installed GitHub for Windows on Windows XP SP3 but the application will not launch when I click the desktop icon. Where can I find the error log for the application? Also, I have .NET 4 installed. Do I need .NET 4.5 and if so, is it even possible to install this on XP?

  93. Avatar for haacked
    haacked October 23rd, 2013

    It should work on Windows XP with .NET 4. Email support@github.com with details and we'll help you out.

  94. Avatar for Deniz
    Deniz December 24th, 2013

    cant install either. that damn bitch does not work

  95. Avatar for tim
    tim March 8th, 2015

    Phil, I think the routing rule in the sample should be {controller}/{action}/{id}, no {id}/{action}/{id}

    And about the ActionName attribute. This is a nice way to add many view with the same name, but I really like the correspondence between methods and actions since it allowed the Url<t> helpers that provided compile-time check and intellisense when writing redirect to actions and url to actions.

    So, not sure whether to like this new feature or not :)

  96. Avatar for Nam Le
    Nam Le March 31st, 2016

    One thing I don't like about it, is the way it installed itself in %APPDATA% (together with git.exe is set in %APPDATA% as well (why not Program Files as other legitimate software?) Recently, in an attempt to prevent CryptoLocker and other ransomware in the wild, the sysadmin enforced a new Group Policy Object with a rule to block any binary file to run from %APPDATA%. That caused a lot of problem (even the way GitHub install as a OneClick application should be frown upon: it doesn't leaving any configuration to user).