The msysGit repository. Please post all patches to the msysGit mailing list.
Switch branches/tags
v1.5.3-rc4.mingw.2 v1.5.3-rc4.mingw.1 msysGit-v0.6 msysGit-1.6.1-preview20090211 msysGit-1.5.4-rc0-preview20071217 WinGit-1.5.3-preview20071010 WinGit-0.2-alpha WinGit-0.1-alpha GitMe-0.4.2 Git-preview20080301 Git-preview20080221-with-git-svn Git-preview20080220-with-git-svn Git-preview20080219-with-git-svn Git-1.7.10-preview20120409 Git-1.7.9-preview20120201 Git-1.7.8-preview20111206 Git-1.7.7.1-preview20111027 Git-1.7.7-preview20111014 Git-1.7.7-preview20111012 Git-1.7.6-preview20110720 Git-1.7.6-preview20110708 Git-1.7.4-preview20110204 Git-1.7.3.2-preview20101025 Git-1.7.3.1-preview20101002 Git-1.7.2.3-preview20100911 Git-1.7.1-preview20100612 Git-1.7.0.2-preview20100407.msysGit-netinstall Git-1.7.0.2-preview20100407-2.msysGit-netinstall Git-1.7.0.2-preview20100309 Git-1.7.0.2-preview20100309.msysGit-installers Git-1.6.5.1 Git-1.6.5.1-preview20100112-with-cheetah Git-1.6.4-preview20090730 Git-1.6.4-preview20090729 Git-1.6.3.2-preview20090608 Git-1.6.3.2-preview20090607 Git-1.6.3-preview20090507 Git-1.6.3-preview20090507-2 Git-1.6.2.2-preview20090408 Git-1.6.2.1-preview20090322 Git-1.6.2-preview20090308 Git-1.6.1-preview20081227 Git-1.6.0.2-preview20080923 Git-1.6.0.2-preview20080921 Git-1.5.6.1-preview20080701 Git-1.5.6-preview20080622 Git-1.5.5-preview20080413 Git-1.5.4-rc5-preview20080128 Git-1.5.4-rc3-preview20080113 Git-1.5.4-rc2-preview20071228 Git-1.5.4-rc0-preview20071217 Git-1.5.4-preview20080202 Git-1.5.3.6-preview20071126 Git-1.5.3.5-preview20071114 Git-1.5.3-preview20071027 Git-1.5.3-preview20071019
Nothing to show
Pull request Compare This branch is 368 commits behind msysgit:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
cmd
doc
etc
git @ aa4aafb
include
lib
libexec
mingw
share
src
ssl
.gitattributes
.gitignore
.gitmodules
README.md
THIS_IS_MSYSGIT
TODO
git-cmd.bat
msys.bat
wine-start.sh

README.md

Build environment for Git for Windows

This is the build environment -- also known as msysGit -- for Git for Windows.

The easiest way is to install it via the net installer. This installer will clone our two repositories, including all the necessary components to build Git for Windows, and perform an initial build.

The build environment

msysGit brings a few components that are required to build Git:

  • Bash, a Unix-type command-line shell. Quite a few components of Git itself are still shell scripts. Therefore, Bash is required to execute Git commands (see the output of cd /git && git ls-files \*.sh for a full list).
  • the GNU C Compiler. Since we try to rely only on free software (apart from the Operating System, of course), we think it makes more sense to rely on GCC than on Visual Studio express. Also, it makes the maintenance burden lighter, as upstream Git also targets mainly GCC.
  • GNU Make.
  • Perl. Still required for a couple of Git components (see the output of cd /git && git ls-files \*.perl), most notably git svn.
  • Tcl/Tk, a scripting language making it easy to implement cross-platform graphical user interfaces. We need this for gitk and git gui.
  • cURL, a library implementing HTTP and FTP transport.
  • many more libraries.
  • some Unix programs required by the shell scripts in Git.

The relationship between msysGit and Git for Windows

Git for Windows is the software package that installs a minimal environment to run Git on Windows. It comes with a Bash (a Unix-type shell), with a Perl interpreter and with the Git executable and its dependencies.

On the other hand, msysGit is the software package installing the build environment that can build Git for Windows. The easiest way is to install it via the net installer.

The difference between MSys and MinGW

The MinGW project's goal is to provide a way to compile native Windows binaries with no POSIX layer using the GNU C Compiler.

However, at least the Bash needs a POSIX layer (most notably due to the absence of the fork() call on Windows). Therefore, MSys (the minimal system) is thrown in, offering the minimal system necessary to offer Bash (and Perl) functionality on Windows.

Consequently, MSys ships with a POSIX layer (based on an old version of Cygwin) that is only used by the Bash and Perl, but not by anything compiled within that environment.

Further information

For more information and documentation, please have a look and enhance our Wiki.

For code contributions and discussions, please see our mailing list.