149

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.

  • 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 Feb 18 '14 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 Feb 18 '14 at 12:43
  • I really would like to see the up and downvotes :D – ManuelSchneid3r Mar 13 '15 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. – Angelo Fuchs Aug 6 '15 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. – Paul d'Aoust Feb 24 '16 at 18:34
82

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.

  • 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 Feb 20 '14 at 9:35
  • 2
    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 Jun 11 '14 at 16:45
  • 7
    but JAVA. No. No. No. – CAD bloke Jul 27 '15 at 2:53
  • 5
    Java? Is this a joke? Write once devastate everywhere! – user148298 Jul 31 '15 at 21:48
  • 2
    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 Aug 7 '15 at 10:32
81

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

  • 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 Feb 18 '14 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 Feb 19 '14 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 Feb 19 '14 at 13:45
  • 8
    Delete the only relevant and good answer?! That's amazing tip. This site is going places with this attitude, that's for sure. – JBaruch Feb 19 '14 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 - Reinstate Monica Feb 20 '14 at 16:26
67

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

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

  • 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 Feb 18 '14 at 11:51
  • 4
    Finally, somebody else who uses Sourcetree! – markasoftware Jun 12 '14 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 Jul 9 '14 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. Aug 20 '14 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 Apr 13 '16 at 22:53
18

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

  • 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 Apr 11 '16 at 7:00
15

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).

  • 2
    IMO, the omission of fetch and push from the vocabulary damages its utility as a non-github tool. – Gusdor Aug 21 '14 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. – MiFreidgeim SO-stop being evil Apr 23 '17 at 13:32
  • It's not too simplistic for newbies, which is what the OP was about. – Joseph Dykstra Oct 2 '18 at 17:32
13

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

12

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.

  • 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. Oct 11 '15 at 17:27
  • I didn't like that it puts a "node_modules" directory inside my repo with thousands of files in it. Why? – Tamás Szelei Apr 28 '16 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? – Ciro Santilli 新疆改造中心法轮功六四事件 Apr 28 '16 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. – Tamás Szelei Apr 28 '16 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 ;-) – Ciro Santilli 新疆改造中心法轮功六四事件 Apr 28 '16 at 9:22
0

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)

protected by Community Oct 10 '14 at 19:12

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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