161

Personally I'd just install Cygwin and proceed with the usual *nix shell tools, but I need to make a software recommendation to some clients that need something a bit more newbie friendly.

The situation is that several clients have developed website(s) of the mostly static HTML sort, but the server they need to deploy to doesn't have the usual collection of 1990s protocols available (for example, no FTP). In fact, there is no access to any graphical interface. Deployment is handled through Git. Changes need to be pushed to a a remote repository that is accessible only via SSH key login. Any commits to the master branch pushed by the authorized key trigger a hook script that deploys the site to the production servers.

I am looking to suggest a Git client for Windows that:

  • makes it relatively simple to setup and initialize…
    • …one or more local repositories.
    • …a single git+ssh remote.
    • …authentication using an RSA key pair (generation of this would be a bonus).
  • has a simple interface where a basic workflow of committing and pushing is easy to accomplish without understanding the intricacies of distributed version control.

There is a GitLab instance available for each client that has one project per domain and makes adding their public key fairly easy. It also gives the clone/remote URLs for each project and makes it fairly easy to check what the status of the remote repository is.

Open source would be preferred, but any reputable freeware would be acceptable. What client software should I point them to?

Edit: Most suggestions to date seem to focus on full blown front ends to all of Git's functionality. I'm looking for something more pared down that only covers the basics and is better suited for a specific task than at running with the big dogs. I'm thinking the KISS principle here for people that do not use version control for anything else and just want to "upload" their websites.

6
  • 2
    Please note I asked a similar question for OSX, but I specifically want tools that are familiar and easy te get the hang of. Cross platform would be OK, but I have and idea the best newbie solution for newbies will be something native to each platform so please keep that in mind when answering.
    – Caleb
    Commented Feb 18, 2014 at 11:56
  • 2
    Not sure this is full-fledged enough for an answer: I've only ever used PortableGit on Windows. It was my first use of Git (I "migrated" from SVN) and it worked very well: a doddle to install. Full suite info from Git for Windows. FWIW.
    – Dɑvïd
    Commented Feb 18, 2014 at 12:43
  • I really would like to see the up and downvotes :D Commented Mar 13, 2015 at 14:00
  • @ManuelSchneid3r +74/-0 at the time of this posting. Answers are +58/-2, +48/-3, +34/-0, +12/-0, +8/-1, +2/-0, order by votes. Commented Aug 6, 2015 at 13:22
  • 3
    Just joined this SO site, so I can't answer yet, but here's a fairly new offering from Axosoft: gitkraken.com It seems to be one of those modern Node-built apps, and doesn't yet support submodules, but so far it blows the doors off SourceTree for offering powerful features in a simple manner. Commented Feb 24, 2016 at 18:34

12 Answers 12

87

There is nothing like TortoiseGit for beginners.

  • It integrates with Windows Explorer (no new UI to learn)
  • Open source (GPL)
  • Setup/initialize new local repo:

Setup/initialize new local repo

  • Basic functions are in the top of context menu (Sync, Commit, Push and Pull):

TortoiseGit

19
  • 5
    @Jbaruch how easy it is to initialize new local repository? A single git+ssh remote? authentication? Is it open source? There's specific requirements set in the question that you don't address.
    – Olli
    Commented Feb 18, 2014 at 19:12
  • 4
    I still don't think it qualifies as high-quality answer. It's starting to fit the most basic requirements, though. More citations from that linked meta post: "You should also talk about any potential quirks that you can think of, and even things that you found to be a down side of the product. In short, share your experience with something, not simply your knowledge that it exists."
    – Olli
    Commented Feb 19, 2014 at 10:43
  • 3
    If you don't have any relevant experience with it, maybe you should not recommend it? In my opinion, you should either improve this answer or delete it and add a comment to the question instead.
    – Olli
    Commented Feb 19, 2014 at 13:45
  • 9
    Delete the only relevant and good answer?! That's amazing tip. This site is going places with this attitude, that's for sure.
    – JBaruch
    Commented Feb 19, 2014 at 14:20
  • 6
    TortoiseGit is about as simple as Git gets. If someone else sets it up for you, all you need to do to commit changes is right click on the file (or folder) in Explorer and select "Git Commit."
    – Ben Miller
    Commented Feb 20, 2014 at 16:26
84

I moved from Github For Windows and then Git Extensions to SmartGit and recommend it. Here's why-

  1. Cross-Platform (made in Java)
  2. Very easy to setup and use. If you have experience with any git clients before, you won't take a minute getting on business.
  3. Portable
  4. Simple Clean UI. The main interface only shows the changed files and the big Commit, Merge, Push and Pull buttons.

    SmartGit

Commercial software but free for private use.

For git beginners or non-git users, the only pain will be setting up the SSH keys. Once you have done that and cloned your first repository, it will be straight-forward and you will never have to open the console.

14
  • 3
    This question is very specifically for people who do not have any git (or vcs) experience and don't plan to have any. Could you comment on how this would work for that use case? It almost sounds like something earlier in your chain might be better. What is "Git Extensions"?
    – Caleb
    Commented Feb 20, 2014 at 9:35
  • 3
    I used SmartGit as my first git client and it is easy to use with only a slight learning curve. I would recommend it to anyone.
    – bd33
    Commented Jun 11, 2014 at 16:45
  • 8
    but JAVA. No. No. No.
    – CAD bloke
    Commented Jul 27, 2015 at 2:53
  • 6
    Java? Is this a joke? Write once devastate everywhere!
    – user148298
    Commented Jul 31, 2015 at 21:48
  • 4
    I strongly agree. SmartGit is probably the best simple version control client around. It has pretty much every functionality you could ever want in a GUI, but is still pretty easy to use if you don't need any of the advanced features. Also, Java software is great as long as you're not the one writing it. Except for that Swing business. It's just so ugly.
    – GregRos
    Commented Aug 7, 2015 at 10:32
71

I am using Atlassian SourceTree and like it a lot.

Here's the drill:

  • Free (not open-source thought AFAIK)

  • Feature rich - Almost all the features of Git is there (not of GitHub, though, e.g. I didn't find a way to rebase a GitHub fork. It's doable using ordinary Git commands - adding remote etc, but not out of the box)

  • Supports GitFlow

  • Nice UI:

    screenshot

NOTE - This screenshot is from a much older version. The UI of the newer version is simpler.

Bottom line - I find it almost perfect and use it for all the needs not covered inside my IDE.

15
  • 7
    That looks WAY too complex—too many buttons. I don't want "feature rich" so much as "feature sparse". This may be great for somebody who understood branching and diff trees and all that good stuff, but not for a newbie that does't actually plan on learning git. I need something that glosses over the complexities of even doing basic staging before a commit.
    – Caleb
    Commented Feb 18, 2014 at 11:51
  • 4
    Finally, somebody else who uses Sourcetree! Commented Jun 12, 2014 at 1:51
  • 5
    SourceTree is by far the best, but they don't have a Linux version. It looks intimidating at first, but it's really not at all. Very simple to use.
    – mawburn
    Commented Jul 9, 2014 at 1:37
  • 5
    They just updated the SourceTree interface, which made it a bit less bulky. I personally enjoy it very much. I was a total beginner with the whole Git thing and it took me only a few hours to get comfortable enough thanks to this client.
    – B.K.
    Commented Aug 20, 2014 at 1:40
  • 4
    If you go with SourceTree, stick with version 1.7. 1.8 is horrible. Download link for 1.7: downloads.atlassian.com/software/sourcetree/windows/…
    – Dave
    Commented Apr 13, 2016 at 22:53
19

I very much like Git for Windows (msysGit). It has three 'modes' - Bash (where you can do everything), Windows Context Menu, and GUI (where you can do a lot less but it is I would say very user friendly).

  • makes it relatively simple to setup and initialize: Very easy
    • one or more local repos: Initialization is very simple and you can have as many as you want with no conflicts.
    • a single git+ssh remote: Easy - pretty easy to add more remotes if desired at some point in the future as well. (see screenshot below which is accessed by GitGUI->remote->add)
    • authentication using an RSA key pair (generation of this would be a bonus): Yes, you can also generate it although that is only via cmd line (see this tutorial)
    • has a simple interface where a basic workflow of committing and pushing is easy to accomplish without understanding the intricacies of distributed version control: Yes, see screenshot, it was much easier to learn for me when I first started playing with code than RapidSVN or TortoiseSVN.

From the cmdline you can do EVERYTHING (pretty much); the GUI does have quite a few features but nothing complicated is shown on the front screen (only commit related), everything else is hidden in the menus.

screenshot

1
  • I'm not exactly noob, but I don't use Git in daily basis and I had many problems with it - couldnt find merge window. adding files and undoing changes was really difficult and interface is tricky.
    – Bomberlt
    Commented Apr 11, 2016 at 7:00
18

The most simplistic and easy I have ever seen is GitHub for Windows:

GitHub for Windows screenshot

But there is one caveat: using with non-github repositories isn't intuitive (feels like a hack TBH).

3
  • 2
    IMO, the omission of fetch and push from the vocabulary damages its utility as a non-github tool.
    – Gusdor
    Commented Aug 21, 2014 at 8:46
  • It's too simplistic. Very quick you will find that it doesn't have enough fuctionality. E.g I didn't find, does it support stash. Commented Apr 23, 2017 at 13:32
  • It's not too simplistic for newbies, which is what the OP was about. Commented Oct 2, 2018 at 17:32
16

You may consider using GitKraken. Some features:

  • Free for non-commercial use
  • Cross-platform (Windows, Mac, Linux)
  • Multiple profile support
  • One-click undo & redo
  • Built-in merge tool
  • Drag and drop to merge, rebase, reset, push and more
  • Resizable, easy-to-understand commit graph
  • View image diffs in app
  • Submodules and Gitflow support
  • Integrate with GitHub or Bitbucket account

enter image description here

13

ungit has a strong ease of use and understandability focus (as the name suggests)

https://github.com/FredrikNoren/ungit

Install:

npm install -g ungit

It is Node.js based and runs a server that users can view on the browser, so it is cross platform.

Not sure if it manages SSH for users, but it is definitely something that I can see them doing.

5
  • This GUI intrigues me. I am not thrilled that it is built on javascript (personal bias, not the end of the world) but the visual interface looks about as idiot-proof as anything possible for Git. There is a terrific tutorial for Ungit but unfortunately it is in French, still it is worth watching just to visually see Ungit in action.
    – O.M.Y.
    Commented Oct 11, 2015 at 17:27
  • I didn't like that it puts a "node_modules" directory inside my repo with thousands of files in it. Why? Commented Apr 28, 2016 at 8:39
  • @TamásSzelei don't tell anyone, but I haven't actually tried it ;-) But does it treat node_modules specially? Doesn't the same happen with other directories? Isn't it a .gitignore problem? Commented Apr 28, 2016 at 8:41
  • That depends on how you look at it. You can gitignore it, sure, but I'm reluctant to push a change to every user of this repo just because my git client puts (parts of?) its source code in the repo. Surely someone would ask what the hell am I doing with "node_modules" in a C++ project. Commented Apr 28, 2016 at 9:18
  • @TamásSzelei ah, OK, It actually creates files, I thought it was just showing them. Bug report then, and link to it ;-) Commented Apr 28, 2016 at 9:22
3

I am surprised hardly anyone mentioned about Git Extensions. I am using it for many years and I find it more user friendly than Tortoise Git.

2

Git Cola

  • crossplatform (Linux, Windows, OSX)
  • FOSS
  • GitKraken advertise itself as better that Git Cola

enter image description here

I use it as main git interface on Linux. Very easy to do everyday operations

  • Commit
  • Revert last local commit (change description, add missing changes)
  • Commit changes for selected lines (isolate not related changes)
  • View Log (included DAG tool)
2

I've just released Glint. The aim is to have a client that runs fast with a nice, simple, and intuitive UI whilst still having access to more powerful features.

Runs on Windows, macOS, and Linux. Free to use, with a paid subscription for bonus features (but 99% of the app is totally free).

Glint

0

https://git-fork.com/

I recently moved from Sourcetree to Fork. The name is very hard to Google for but it's great software. The killer feature for me was being able to stash and apply certain files and not just all local changes. It's not free software ($50) but it just shames you like WinZip does every now and then.

enter image description here

1
  • I recommended Fork a lot before the price went up and it is nice software, but it does not meat the specific requirements of this question.
    – Caleb
    Commented Aug 25, 2021 at 14:08
0

For the record, I've never found anything that really fulfilled everything I was looking for in this question.

My current go-to to recommendation when a beginner needs a free GUI is GitAhead. It has a few rough edges but is about the simplest cleanest implementation I've run across that is open source. It's very similar to Fork — it lacks a little bit of Fork's polish, but also doesn't come with a price tag.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.