When I started using Git, I first download GitHub for Windows.
I went searching, and instead found GitHub Desktop, which is the new client from GitHub for working with Git. This replaces GitHub for Windows, and gives a unified experience across Windows and MacOS. I hope it also works better, as I found the GitHub for Windows software to be quite flaky. I abandoned it early and moved to SourceTree and GitFrakken ( I couldn’t decide).
I downloaded the installed and when I clicked the file, the install ran, with no other actions from me. No UAC, no picking files, not EULA, no crazy installer. It just runs. Good and bad, but overall, this is likely a few MB, and I like this.
When this gets done, I get asked to sign into GitHub. I can skip this, and likely use this as a local git manager, but since I have a GitHub account, I’ll do that. Signing up is easy, it’s free, and since lots of people use GitHub, just sign up.
Once I sign up, I need to approve permissions. I’m always wary of this, and I think that I should really understand what this means, but for most things, this is fine. If I lose control of my local machine, I have bigger issues.
I do have to authenticate, which I think is important. I have two factor set up, which ensures that you can’t just link to my repos and guess my password.
Once this completes, I get asked to allow my browser to open the app. I agree, and I see a get started view, with my online repos listed.
Trying Out the Interface
I decided to see how well this works, to see if this is more stable. With that in mind, let’s drop an existing repo folder onto the client. I have a git repo that isn’t in GitHub yet, so let’s drag that folder and drop it on the “Pro Tip” section in the lower right (see the image above).
When I do that, I get a pop up.
This is the path of the repo. I click “Add”, and it’s added. This becomes my current working repo, and I can see a somewhat standard view of my repo that I see in SourceTree or GitKrakken or any client.
As you might expect, this is geared towards publishing to GitHub. I have a “publish to GitHub” link. I also have a link to open VS Code.
If I click the “History” tab, I see my commit of this repo on the left, the files in the middle, and file contents on the right. Standard stuff, but a nice layout.
I wonder what happens if I drop a local repo on here that’s in GitHub? Let’s try that.
The “Getting Started” screen isn’t listed, and I can’t close the repo. At least, I don’t see a close menu item. If I restart the app, I come back to my main repo screen. Let’s try using the “Add repository” menu item. This gives me the same type of dialog I got from a drag and drop repo.
I can cancel that and just drop another repo folder onto the app, and I get the same dialog as well. So drag/drop seems to always work. When I look at history for an older repo, I see lots of commits. No graph, but all the commits and dates.
This repo always has a remote at GitHub, so I see the “Open the repository” link on the “Changes” tab.
If I make a few changes in this repo, in a few seconds I see the changes reflected on the main page. I deleted two files and edited another. The right side of the filename has a hyphen for a delete and a circle for a chance.
I committed two changes and that left the third. I don’t see a stage/unstage option here. If I right click the file, I do see a few options. This is likely good enough for me that I can discard the changes. However, the “ignore” feature is nice, as well as the add all of this type option.
Opening this in VS Code, Explorer, or a default program is a nice touch as well.
There some interesting options in the tool. I’ll cover a few things I found to be nice items. First, I like that the branch menu has some things beyond the “new branch” and compare. I can merge, or rebase. Those are good things to have in this tool and common tasks.
The Repository menu is what you’d expect, but the “Create issue on GitHub” is really nice. I submit quite a few of those to keep track of work, so it’s nice to be able to get there quickly from here.
Under File – Options, there are some good, handy things that much software has these days, but much also doesn’t. For Integrations, the app detected I have Sublime Text installed, so I can use that instead of VS Code. I assume notepad++ or other editors might appear here.
The Appearance option has a light and dark theme. Important to a lot of people, though I’d like the ability to easily modify things here. I find that these pre-defined themes are sometimes hard for me to see. I’d like to alter the colors slightly in many of them, especially as I get older.
I like that the Advanced menu lets me choose to get rid of some confirmation dialogs. Overall, I like these, but they do get annoying for some things.I also get a basic default of what to do with changed files when I switch branches. Since I sometimes do this without thinking, it’s a nice feature.
So far my initial impressions are positive, but I need to use this for a bit as my main git tool to see if it works well. I enjoyed GitHub for Windows as well, but I kept having it break with certain changes I’d make, which forced me to learn the command line to fix my repos.
This is a much simpler app, and it provides the basic git functions I mostly need. Time will tell if this feels intuitive, but I like the simple nature and the ability to quickly navigate back to a file in Explorer or VS Code. I don’t know if I need that, since often I have an IDE open when I’m working with files, so I’ll experiment and see how well this works.