Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ For extracting 7z/zip archives see [page](./zip-archives-extracting-the-released

## Are there 'Nightly' builds of the latest and greatest

The Git for Windows builds are not quite that frequent, but there are Snapshot builds listed at https://wingit.blob.core.windows.net/files/index.html
The Git for Windows builds are not quite that frequent, but there are [Snapshot builds](https://gitforwindows.org/git-snapshots/).

These often 'fix' (or attempt fixes) recent issues before a new formal release. Check their commit notes and links to issues to see if your problem is included.

Expand Down
46 changes: 30 additions & 16 deletions content/install-inside-msys2-proper.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,47 +16,61 @@ Here are the steps to install the 64-bit version of Git for Windows to be run in

1. Edit `/etc/pacman.conf` and add the Git for Windows package repositories above any others (i.e. just before `[mingw32]` on line #71 as of this writing):

[git-for-windows]
Server = https://wingit.blob.core.windows.net/x86-64
```
[git-for-windows-x86_64]
Server = https://raw.githubusercontent.com/git-for-windows/pacman-repo/refs/heads/x86_64

[git-for-windows-mingw32]
Server = https://wingit.blob.core.windows.net/i686
[git-for-windows-mingw32]
Server = https://raw.githubusercontent.com/git-for-windows/pacman-repo/refs/heads/i686
```

(The above is correct. The second, MINGW-only repository is for the other architecture.)

This step can be done with the following `sed` command (make sure to do proper backup before trying it):

sed -i '/^\[mingw32\]/{ s|^|[git-for-windows]\nServer = https://wingit.blob.core.windows.net/x86-64\n\n[git-for-windows-mingw32]\nServer = https://wingit.blob.core.windows.net/i686\n\n|; }' /etc/pacman.conf
```
sed -i '/^\[mingw32\]/{ s|^|[git-for-windows-x86_64]\nServer = https://raw.githubusercontent.com/git-for-windows/pacman-repo/refs/heads/x86_64\n\n[git-for-windows-mingw32]\nServer = https://raw.githubusercontent.com/git-for-windows/pacman-repo/refs/heads/i686\n\n|; }' /etc/pacman.conf
```

To avoid the future signature related issues, run the following commands first

rm -r /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate msys2
```
rm -r /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate msys2
```

2. Authorize the signing key with:

curl -L https://raw.githubusercontent.com/git-for-windows/build-extra/HEAD/git-for-windows-keyring/git-for-windows.gpg |
pacman-key --add - &&
pacman-key --lsign-key E8325679DFFF09668AD8D7B67115A57376871B1C &&
pacman-key --lsign-key 3B6D86A1BA7701CD0F23AED888138B9E1A9F3986
```
curl -L https://raw.githubusercontent.com/git-for-windows/build-extra/HEAD/git-for-windows-keyring/git-for-windows.gpg |
pacman-key --add - &&
pacman-key --lsign-key E8325679DFFF09668AD8D7B67115A57376871B1C &&
pacman-key --lsign-key 3B6D86A1BA7701CD0F23AED888138B9E1A9F3986
```

3. Then synchronize with new repositories with

pacman -Syyuu
```
pacman -Syyuu
```

This installs a new `msys2-runtime` and therefore will ask you to terminate all MSYS2 processes. Save what you need from other open MSYS2 shells and programs, exit them and confirm the Pacman prompt.
This installs a new `msys2-runtime` and therefore will ask you to terminate all MSYS2 processes. Save what you need from other open MSYS2 shells and programs, exit them and confirm the Pacman prompt.
Double-check Task Manager and kill `pacman.exe` if it's still running after the window is closed. Start a new MSYS2 terminal.

4. Then synchronize *again* to install the rest:

pacman -Suu
```
pacman -Suu
```

It might happen that some packages are downgraded, this is expected.

5. And finally install the packages containing Git, its documentation and some extra things:

pacman -S mingw-w64-x86_64-{git,git-doc-html,git-doc-man} mingw-w64-x86_64-git-extra
```
pacman -S mingw-w64-x86_64-{git,git-doc-html,git-doc-man} mingw-w64-x86_64-git-extra
```

Now you can close the current shell and open a MINGW64 shell (`msys2_shell.cmd -mingw64`) to check that everything went well. Run `git --version` and it should output something like `git version 2.31.0.windows.1` (or newer).

Expand Down
4 changes: 2 additions & 2 deletions content/releasing-git-for-windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,11 @@ Sadly, things are broken a lot. In those cases, the logs have to be analyzed, an

This step is trivial: `git push origin <branch>:main` where `<branch>` is something like `rebase-to-v2.37.0`.

This will trigger another "Git artifacts" run, which will figure out that there is a GitHub Release for that commit, download those artifacts, then trigger a run of [the `Snapshots` Release Pipeline](https://dev.azure.com/git-for-windows/git/_release?definitionId=2&view=mine&_a=releases), which will then upload [the snapshot](https://wingit.blob.core.windows.net/files/index.html).
This will trigger another "Git artifacts" run, which will figure out that there is a GitHub Release for that commit, download those artifacts, then trigger a run of [the `Snapshots` Release Pipeline](https://dev.azure.com/git-for-windows/git/_release?definitionId=2&view=mine&_a=releases), which will then upload [the snapshot](https://gitforwindows.org/git-snapshots/).

It is important to wait with pushing to `main` until there is a GitHub Release, otherwise the "Git artifacts" Pipeline would build _another_ set of artifacts and upload those, but we do want to use the same artifacts as were uploaded to GitHub Releases.

Note: The idea is to push to `main` relatively soon after the Release Pipeline finished, to keep the Pacman repository, the [snapshots](https://wingit.blob.core.windows.net/files/index.html) and the `main` branches as aligned as possible.
Note: The idea is to push to `main` relatively soon after the Release Pipeline finished, to keep the Pacman repository, the [snapshots](https://gitforwindows.org/git-snapshots/) and the `main` branches as aligned as possible.


## How to release a quick-fix release
Expand Down
4 changes: 4 additions & 0 deletions content/snaps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
type: redirect
redirect_to: https://gitforwindows.org/git-snapshots/
---
2 changes: 1 addition & 1 deletion content/snapshot-builds.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Git for Windows' `main` branch is kept in an always-releasable state as much as

For example, in case that a critical bug is discovered that really needs to be fixed within the same day, Git for Windows does not have a maintenance branch (or, "stable" branch). Such a fix would be applied on top of `main` and a new version would be created from that state.

To allow users to help verifying that "always-releasable state", as well as to allow users to verify fixes introduced via PRs, Git for Windows builds "snapshot" releases (published [here](https://wingit.blob.core.windows.net/files/index.html)) whenever the `main` branch advances.
To allow users to help verifying that "always-releasable state", as well as to allow users to verify fixes introduced via PRs, Git for Windows builds "snapshot" releases (published [here](https://gitforwindows.org/git-snapshots/)) whenever the `main` branch advances.

Those snapshot releases are considered robust. They are built using [the exact same Azure Pipeline](https://dev.azure.com/git-for-windows/git/_build?definitionId=34&_a=summary) that also builds official Git for Windows versions (as well as the `-rc` pre-releases leading up to every major version). Snapshot versions come in the same flavors as full Git for Windows versions: 32-bit and 64-bit, installers, portable Gits, MinGits.

Expand Down
4 changes: 4 additions & 0 deletions content/snapshots.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
type: redirect
redirect_to: https://gitforwindows.org/git-snapshots/
---
17 changes: 17 additions & 0 deletions layouts/redirect/single.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Redirecting&hellip; Git for Windows snapshots</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="GitForWindows.css" />
<link rel="shortcut icon" href="{{ relURL "favicon.ico" }}" />
<link rel="canonical" href="{{ .Params.redirect_to }}" />
<meta http-equiv="refresh" content="0; url={{ .Params.redirect_to }}" />
</head>
<body>
<script>window.location.replace(document.querySelector("link[rel='canonical']").href + window.location.search + window.location.hash)</script>
<h1>Redirecting&hellip;</h1>
<a href="{{ .Params.redirect_to }}">Click here if you are not redirected.</a>
</body>
</html>