I have heard that git on Windows has been shaky in the past, but I am wondering if things are better today?<p>I will need to setup git on a Windows server, and then I am wondering what the best way for developers to use it on their Windows boxes would be?<p>Note: while you may think command line is the best way to use git, the people around me would prefer a Visual Studio plugin or something along those lines.<p>Also: how common is it to install git on a Windows server? Is it probably just best to stick with something like SVN?
I use msysgit daily on Windows 7 against a github account. For the most part things work fine but there are a few things that annoy me:<p>- Disagreements about case insensitive paths sometimes confuse git. Renaming a folder simply to change its case is the most common one that catches me.<p>- I run everything through the bash shell which works fine but is a pain to connect to Windows batch files. This makes automation harder than required.<p>- Line endings... I just turn off any automatic conversion and use a decent editor that doesn't mind.<p>I initially used the GUI that comes with it and that works fine but I find the command line faster to work with. The advantages of git make the above problems worth it to work around for me.<p>I don't run my own server so can't comment on that. From what I have read linux setup would be much easier to do.
Do the devs already know git, or will it be a new experience for them? No matter what tool(s) you use, learning to use git effectively will be the hardest part.<p>I use TortoiseGit integrated into Windows Explorer for most stuff, and drop down to the command line in the odd situation where it's needed. I can't give much feedback about the server side, I'm using GitHub.
It is so easy to rent a Linux server these days that I suspect the only reason someone is "required" to run it on a Windows server is because, well, they don't have a good reason, just corporate-bureaucratic IT bullshit.
Git is usable on Windows - I've used it for the past year with cygwin. However my colleagues mostly switched to msysgit as they had issues with cygwin - msysgit looks like a better choice. Our server is on Linux though - I'm not sure how it will fare on Windows. We went through a few gotchas (crlf, case-insensitivity) but it was manageable.<p>Manageable is the most I can say though. I've come to the conclusion that going through the trouble of msysgit/cygwin is not worth it. I don't know if it's an option for you but have you considered other DVCS? From what I heard Mercurial is pretty good on Windows and you'd get pretty much the same advantages as with Git. Others might be able to tell you more about it.<p>I wouldn't go back to SVN on any platform though - I got addicted to local branches and the speed of having the whole repo locally.
I've been using it daily for over three years on cygwin. If you don't depend on case-sensitive paths and don't have symlinks in your repository, it's great. I use it for work and for personal stuff, and I have zero desire to find a new tool.<p>Git is, given its heritage, heavily optimized for unix-style (especially linux) vfs implementations, so it is slower on windows than it is on osx or linux, however even with a fairly sizeable repository it's completely usable. It's not noticeably slower than the alternatives on windows and it's generally much faster on unix.<p>Go for it.
I've been using git on windows exclusively for about a year now (I think), in an environment where the central repo is subversion.<p>The initial import took a ridiculous amount of time (so I did it on a mac eventually), but from that point on I've been flying. The only itchy bit so far is the autocrlf part.<p>I've found "gitk" and "git gui" good as well. You might find them more than merely adequate. I've used Tortoise with svn, but not with git, so dunno about that, but I'd recommend git gui without hesitation.
I've used msysgit on a daily basis for about six months now and have had very few problems. The biggest one is that Visual Studio locks files while updating intellisense, so anything that updates a large number of files at once while the solution is open has a decent chance of failing on at least one file. This is only really a problem when doing complicated rebases though, and even then at worst you just have to abort it and start over.<p>I've never used a gui for git, so I can't comment on how well they work.
I have been keeping tabs on TortoiseGit and it has become a lot more usable. I usually shy away from command line on windows and my git usage on windows is very light. TortoiseGit seems sufficient for day to day activities not involving any git magic.<p>For setting up a git server on windows please check out gerrit ( <a href="http://code.google.com/p/gerrit" rel="nofollow">http://code.google.com/p/gerrit</a> ). It is a pure Java implementation so should work reasonably well on Windows.
msysgit is quite good, provided you turn off linefeed conversion. I wrote about some ways to make it easier for day to day use, if you're interested: <a href="http://mullr.wordpress.com/2010/06/01/configuring-msysgit-for-improved-awesome/" rel="nofollow">http://mullr.wordpress.com/2010/06/01/configuring-msysgit-fo...</a><p>Avoid cygwin git; it appears to work at first, but it gets very slow when you deal with large repositories.<p>None of the end-to-end GUIs I've used (I've tried about 5) do a respectable job. They all try to layer a svn-style view on top of git. Which is, of course, nothing like svn. Have them watch <a href="http://blip.tv/file/4094854" rel="nofollow">http://blip.tv/file/4094854</a>, then offer to hold their hand while they get used to the command line. It's worth it. When you really need to click on things, git gui and gitk do the job fine.
As someone accustomed to using git on Unix, I haven't had problems using msysgit on a (cygwin'd, etc.) system. I'm not sure how developers expecting Visual Studio and unfamiliar with the command line would do, but the many small, quirky "Windows is clearly an afterthought" issues present ~2 years ago seem to be gone.
I use msysgit locally on my machine with a svn repository upstream. Everything seems to work fine for me in my daily work. Like another commenter noted, the initial import took a really long time, and would stop seemingly randomly.
Iv'e found it having no problems with it. It is by far a secondary system for me, but I have been doing GAE, python, and web stuff on it without issue. Msysgit.