Building Git - git-for-windows/git GitHub Wiki
We build Git for Windows using an MSYS2 based Git for Windows SDK. This SDK can be installed via the SDK installer
- Just run the SDK installer.
-
An initial
git clone
andmake
should have already occurred when running the SDK installer. -
Open the Git for Windows SDK MinGW shell by double clicking either the Shortcut on the desktop
Git SDK 32-bit.lnk
or by double clickingmingw32_shell.bat
in the install folder. That isGit SDK 64-bit.lnk
andmingw64_shell.bat
for the64bit
SDK installer. -
Change directory to the initial clone:
cd /usr/src/git
. If the directory is empty you may have themaster
branch checked out:git checkout main
. -
(Optional) build Git:
make install
-
Run the test suite:
make test
. If you are a fan of statistics, you can use the followingprove
invocation to run the testsuite. But first we have to change to the test directory with the commandcd t
. After that you can issue/usr/bin/time prove -j 15 --state=failed,save ./t[0-9]*.sh
. If 15 threads are too many for your system, you can provide the number of threads via the-j <num>
(j for jobs) parameter.
Once the SDK built Git, it is very easy to build another revision of Git, such as per a different branch or Pull Request.
- open the Git Bash of the SDK unless it is still open: execute the
git-bash.exe
binary in the top-level directory of the SDK, - switch the working directory:
cd /usr/src/git
, - fetch the Pull Request's revision or the branch:
- if you want to test a Pull Request, call
git fetch origin refs/pull/<id>/head
, where<id>
is the number of the Pull Request (e.g. if you want to test Pull Request #606, you would callgit fetch origin refs/pull/606/head
), - if you want to test a custom branch, call
git fetch <url> <branch>
instead, where<url>
is the URL of the repository and<branch>
is the name of the branch to test (e.g. if you wanted to test @dscho'scool-new-feature
branch, you would callgit fetch https://github.com/dscho/git cool-new-feature
), - check out the revision that was just fetched:
git checkout FETCH_HEAD
, - continue as above either by
make install
ormake test
.
cd /usr/src/git
git pull
make -j15 install install-html
As before:
cd /usr/src/git/t
/usr/bin/time prove -j 5 --state=failed,save ./t[0-9]*.sh
Single tests, block of tests, or the whole test suite can be run, as detailed in Running Git's regression-tests
TODO: mention good practices to develop using Eclipse, MSVC