Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How is Git on Windows today?
8 points by johnsto19 on Oct 29, 2010 | hide | past | favorite | 26 comments
I have heard that git on Windows has been shaky in the past, but I am wondering if things are better today?

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?

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.

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:

- Disagreements about case insensitive paths sometimes confuse git. Renaming a folder simply to change its case is the most common one that catches me.

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

- Line endings... I just turn off any automatic conversion and use a decent editor that doesn't mind.

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.

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.


I've used Git on Windows for over a year. msysgit is great, once you've worked out the line endings (the installation asks you for this setting)

Using the windows CMD shell works fine.

Git comes with its own SSH that works different to other SSH implementations. I've had problems where Git is earlier in the path, so its SSH was overriding the one I wanted. This broke cwRsync until I worked it out.


This is why I only use it through the bash shell, so it can't mess with anything else. Inconvenient though.


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

What are you using bash or batch files for? Have you tried PowerShell as a replacement for batch files?


My scripts are mostly trivial so far. PowerShell is awesome but it's another thing I haven't had time to learn enough about to use effectively.

I actually have a C# console app as my build script because I can write things there so much faster than anywhere else. It makes calls to Windows and the occasional batch / bash script.


The built-in IDE for PowerShell 2.0 is pretty good from what I recall, but I tend to just stay with the good ole blue console.

`Get-Help` and `Get-Member` are great discovery tools -- pipe anything to it, or do `Get-Member -inputObject $foo` and get all its properties.


I also don't use any kind of Visual Studio plugin for it sorry, I usually to find they don't handle things outside the solution structure very well.


Tortoise git is very usable, it's as good as tortoiseSVN for day-day use.

I don't bother with VS integration, I prefer to checkin the folder to make sure I get all the extra files that aren't shown in VS


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.

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.


I am pleased to see TortoiseGit, does it have any big issues? I remember hearing about it a while ago being very "beta" software.


TortoiseGit has been working fine for me, no crashes or problems. They've done a pretty good job of taking the most common scenarios and making them easy to do, even for a Windows user. (And I say that as a Windows user:)


I used it about 6 months ago but ended up uninstalling it; it had a nasty habit of locking my git repo when I needed it and then crashing. Haven't used it since.


Let me know how that is. I know someone who tried it about a year ago, and it caused explorer to crash regularly.


Moving from SVN to a simple pull, modify, push model is pretty straight forward. Learning git properly is tricky.


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.

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.

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.

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.

Go for it.


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.

I've never used a gui for git, so I can't comment on how well they work.


I've been using git on windows exclusively for about a year now (I think), in an environment where the central repo is subversion.

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.

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

For setting up a git server on windows please check out gerrit ( http://code.google.com/p/gerrit ). It is a pure Java implementation so should work reasonably well on Windows.


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.


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: http://mullr.wordpress.com/2010/06/01/configuring-msysgit-fo...

Avoid cygwin git; it appears to work at first, but it gets very slow when you deal with large repositories.

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 http://blip.tv/file/4094854, 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.


Why should one turn off linefeed conversion?

I've used git on windows very briefly in the past, using this feature, and it seemed pretty nice. I'm planning on having some window-based coworkers use git soon, and does this really become a big problem?


In my experience, it tends to get confused and intermittently forget what it's doing. When this happens, it thinks that all your files are modified. This is very distressing. The workaround, which works great for single-platform teams, is to just turn off linefeed conversion altogether. The problem may very well have been fixed, but I still do it.


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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: