Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
James Sconfitto edited this page May 13, 2015 · 7 revisions

Git on Windows

Git is a powerful Source Code Management tool, which was created out of the need to replace BitKeeper – quickly! – with something else for the Linux kernel development.

In the meantime it has evolved to be one of the best SCMs around.

Historically, Git on Windows was officially supported using Cygwin. To help make a native Windows version, this project was started, based on the MinGW fork.

To make the milky 'soup' of project names more clear:

  • msysGit - is the name of this project, a build environment to develop (i.e. not to use) Git for Windows, which releases the official binaries
  • MinGW - is a minimalist development environment for native Microsoft Windows applications (think: GCC to compile native Win32 applications).
  • MSYS - is a minimal POSIX emulation layer providing a Bourne Shell command line interpreter system. It is used by the MinGW project (and others), was forked in the past from Cygwin (think: a minimal POSIX emulation layer on top of the Win32 API)
  • Cygwin - a Linux like environment, which was used in the past to build Git for Windows, nowadays has no relation to msysGit
  • MSys2 - is another fork of Cygwin with the same idea as MSYS, but it is kept up-to-date with Cygwin and it comes with a package management system called Pacman (calling pacman -Syu will update all of the installed packages to their newest versions). MSys2 is the basis for the upcoming successor of msysGit.

More information:

How to get help

Please note that there are not enough contributors to the msysGit project to offer commercial-grade support; if you do not have the means to fix your problems (possibly with valuable advice from the msysgit@googlegroups.com), or to entice people who can fix them, it is unlikely that your problem will be solved.

See also the GetHelp page on our Wiki.

Testing and reporting bugs is already a really big help, especially when you are ready to help resolve the bugs. Please note, however, that there are a few rules you need to follow:

Issue reporting guidelines

  • Search the existing open and closed issues (also these open and closed ones). Maybe the bug was already reported?
  • Include the output of git --version and the Windows version. In case the issue might depend on the server include its git version and OS version also.
  • Properly describe your issue. Plan to be as thorough, and to spend as much time writing the report, as you wish others will do. After all, you are asking others to help you.
  • Really try to be thorough. If there is an error message, it is much more informative if you copy and paste that error message than if you state that there was an error. If the issue is clearer when accompanied by a screenshot, insert one (but try to paste text whenever possible – do not be lazy unless you want lazy responses in return!).
  • Include a minimal working example using the <codeblock> delimiters (Github Markdown).
  • If your issue stems from a particular repository include its URL. If the repository is proprietary try to create a public test repository showing the same issue.
  • Be prepared to test fixes!
  • Be polite. You are asking highly competent software developers for help, for free, so you might want to treat them with respect, and be grateful for their willingness not to charge you the money their time is worth.
  • An example for an outstanding report can be found here. You may want to imitate the level of detail and time and effort put into that report, to show your appreciation for the help you hope to receive.
  • For further inspiration, read reports that were resolved successfully, http://stackoverflow.com/questions/how-to-ask and http://whathaveyoutried.com/.

How to participate

Of course, it is even better if you get involved, for example by hacking on Git's source code.

Once you have installed msysGit, git will be compiled and the repositories will be fetched, so you are good to go. If you want to get involved have a look at finding an open issue that suits your skills.

You may want to setup Eclipse as your IDE: How-To-Use-Eclipse-For-Coding-MsysGit

In most cases, you can work around bugs in msysGit by using Cygwin on the same repository. Yes, that works, except that the index will be dirty all the time, since Cygwin and MinGW have different ideas about the stat data.

If you made some changes to msysGit, you can contribute them back by forking msysGit.git or msysgit.git on GitHub.

If you want to upgrade Perl, please have a look at our Frequently Asked Questions#I want to upgrade Perl. How do I do that?.

Where to discuss issues

If you want to report a bug in Git itself, git-svn or git-gui (non-Windows-specific), please send a mail to git@vger.kernel.org.

If you want to report a bug in Git for Windows (Windows-specific), or in msysGit (also Windows-specific), send a message to msysgit@googlegroups.com (but be prepared that you might be asked to do your share of work to resolve the issues).

If you are not reporting a bug, but want to enhance Git, or have some usability question, please send a message to msysgit@googlegroups.com, but be aware that posts by non-members, as well as the first post of new members, are moderated. If your question is not Windows-specific, you might want to send it to git@vger.kernel.org instead (or at least in addition to the msysGit mailing list).

Where is the code

You can immediately browse the msysgit support code by clicking the Code button, top left on the menu bar.

The git code itself is here.

Clone this wiki locally