Differences between MinGW from msysgit (aka Git on Windows) and MinGW from MinGW.org

I have installed msysgit via the net installer. I ended up with almost 2 giga of material, where I have among the other things git sources and MinGW.

I have three questions

  • git submodule init does absolutely nothing
  • Git BFG to retroactively enable LFS - protected commits issue
  • How can I make Git show changes to my .sql files?
  • “git push”: slug compilation hangs
  • git and Amazon s3
  • With “git svn”, Can I Ignore Specific Git Commits While Fetching?
    • I already had MinGW from MinGW.org. Now I think I can remove the latter and stay with msysgit distribution. Anyway MinGW from MinGW.org comes with mingw-get, which can be used to manage MinGW packages. How can I identify packages that come with msysgit? or, put it differently, (considering the huge msysgit size) what packages remain out?

    • Given the overall size and since Git is built, what are the folders that can be safely removed without affecting normal Git usage? That is assuming I don’t need to build Git again.

    • And finally Should this version be considered as portable? If not, what are installed registry keys or environment variables?

    In essence I need help to decide whether use the small portable Git and set symbolic links to MinGW or use the huge all-in-one distro and trash the good old MinGW.org.

  • VS 2015 + Bower: Does not work behind firewall
  • How to make gitk show only local branches?
  • Using git from the command line after installing Github for Mac
  • Create pre-push hook to lint/test
  • Git Workflow: Clarification and Avoiding Antipatterns
  • Howto add a changed file to an older (not last) commit in Git
  • One Solution collect form web for “Differences between MinGW from msysgit (aka Git on Windows) and MinGW from MinGW.org”

    Well, there a few misconceptions at play here. Let’s first get them out of the way:

    1. The Unix-like shell environment you are talking about is called MSYS. It was originally developed by MinGW.org as a fork of Cygwin. This was forked to be improved slightly so that git could run with it, which became msysgit (also called Git for Windows; it’s the official binary distribution). Note that the git binaries are native Win32 programs, but the POSIX shell is needed for its operation.

    2. MinGW.org provides a commandline installer/package installation tool called mingw-get. It can be run from MSYS (and I believe plain cmd as well).

    Now, to answer your question:

    • I would say msysgit provides the minimal amount of packages needed for a fully functional git. Lots of git runs through the shell, so therefore you need a lot of utilities. I’m not sure about this one though.

    • Why are you building git? That sounds like an ugly endeavour. I suggest looking below for a better way to use git and MinGW and a shell together.

    • MSYS is quite portable, though you may need to rerun the postinstallation script if you relocate. By default, msysgit puts its ssh keys in your windows user folder, not in the MSYS tree, so be sure not to lose those.

    Finally, to avoid all these issues and help improve your setup by a significant factor (of some random setup quality quantity): use MSYS2. What is MSYS2? It’s an up to date fork of current Cygwin, patched to act like MSYS (with the whole path translation stuff), integrated with a package manager that’s actually useful, and MinGW-w64 toolchains.
    To sum it up: MSYS2 is better, better, and better than anything you have now. Note that you can install a ton of MinWG-w64 libraries without having to build them yourself.

    Git Baby is a git and github fan, let's start git clone.