What is the difference between msysgit and Cygwin + git?
Now I'm using msysgit, but I don't like the Git Bash (you can't resize or copy/paste) so I'm thinking think about switching to Cygwin, because then I could use mintty.
What is the difference between msysgit and Cygwin + git?
Now I'm using msysgit, but I don't like the Git Bash (you can't resize or copy/paste) so I'm thinking think about switching to Cygwin, because then I could use mintty.
Edit 2018:
Since my 2010-2012-2014 answer, in 2015 Git for Windows uses msys2, as I detail here.
See more in "How are msys, msys2, and msysgit related to each other?".
Edit (2 more years later: October 2014)
Johannes Schindelin just explained (Oct. 2014) that msysgit is phased out:
Update 2 years later: July 2012
Msysgit is here to stay, and unless you need to add a few hundreds of MB for cygwin, you really don't need Cygwin to just use Git on Windows.
And if you want to access GitHub, you get one package ("Git for Windows" + ssh keys registered for you on your GitHub account + a nice GUI) with GitHub for windows.
Both Git and msysgit are on GitHub.
The msysgit.github.com page clearly illustrates the difference between:
<---------->
"Git for Windows": Pure users of Git | "MsysGit": for Testers, developers, custom installer maintainers
See also the msysgit FAQ:
Original answer: June 2010
a/ You can resize and copy-paste in Git bash, like in any other Windows Shell.
b/ You are probably using "Git for windows", and not msysgit. From the wiki:
c/ From MSysGitHerald10:
And that is not always welcomed:
Even though, it is far better than the first Git on Cygwin installations from 2007.
This is an answer from 2018...
Git for Windows is based on MSYS2.
..
https://github.com/git-for-windows/git/wiki
This is an answer from 2017...
The fundamental technical difference is that all cygwin programs depend on the cygwin1.dll; but that's at the same time the least interesting one for the end user since it should be almost completely transparent. The main differences I found are not between the git versions as much as between the cygwin environment and msys/mingw environment. These are some differences I found:
msys mounts with the
-noacl
option by default. Doing that in cygwin as well seems to avoid those issues.git status
with all relevant disk contents in the cache takes 4.7 seconds with cygwin and 0.4 seconds with msys git. I'm not sure which part of the cygwin compatibility layer is slowing things down -- locks, forks, filesystem, IPC... they all are candidates.cygpath
between the two worlds. That will play an important role when scripts etc. interface with Windows programs.Edit: it is perhaps not obvious that with some minor tweaks it is possible to share common settings for git (but not only for git) between cygwin and Msys2. If I remember correctly a good way is to set the HOME environment variable in the Windows system settings; then both Msys2 and cygwin will use that directory and hence the same dot-files, among them
~/.gitignore
. That makes changing between cygwin and Msys2 terminals pretty painless (think~/.inputrc
,~/.bashrc
,~/.profile
...).The bash implementation in msysgit is old. However, i use vim when editing and that works great. As for cutting and pasting, I often resort to SHIFT+ALT+[space], E, M or whatever the keys are to get to mark text I want. Not ideal, but does the job well enough as I don't cut and paste too much.
I've now started running Ubuntu on the same machine through VirtualBox. With seamless mode and shared folders, I can take advantage of an up to date bash and fast Git.
I do not use any gui tools for Git except gitk (for gitk --all) to visualize history if I need to.
I've tried cygwin and didn't like it. The virtual box solution is much better if msysgit is not enough for you.
Msysgit has received a number of patches to deal with Windows specific issues such as filesystem case insensitivity, file locking etc. It's probably a bad idea to use the cygwin version. If you have cygwin on your system I'd advise not installing git at all, and preferably not sharing msysgit or cygwin environments from the same PATH.
MSysGit ships with a very old version of SSH. Throughput on my system was around 10 mbit. If you don't care about clone speeds, then this does not affect you. The fix is to either run Cygwin Git or replace the SSH installed in MSysGit.