Fenrir.Git
1.1.0
dotnet add package Fenrir.Git --version 1.1.0
NuGet\Install-Package Fenrir.Git -Version 1.1.0
<PackageReference Include="Fenrir.Git" Version="1.1.0" />
<PackageVersion Include="Fenrir.Git" Version="1.1.0" />
<PackageReference Include="Fenrir.Git" />
paket add Fenrir.Git --version 1.1.0
#r "nuget: Fenrir.Git, 1.1.0"
#:package Fenrir.Git@1.1.0
#addin nuget:?package=Fenrir.Git&version=1.1.0
#tool nuget:?package=Fenrir.Git&version=1.1.0
Fenrir

Fenrir is a .NET library to work with Git repositories. It provides functions to read Git objects, traverse the commit graph, extract trees and files from any commit, etc. Essentially, it provides tools to create your own Git client or transform a repository in any way.
Some of Fenrir's functions perform inline modifications of Git repositories and may destroy information and even commit history!
Always make sure to take a backup before using Fenrir on important data!
Usage
Fenrir is a .NET library, and thus you can install it into your program via NuGet. Visit the package's page on nuget.org, or install the Fenrir.Git library using your preferred .NET package management tool.
Read the API reference to know more of the usage patterns. While Fenrir is written in F#, it provides an API friendly to other .NET languages.
Fenrir also provides a terminal tool, Fenrir.Application, as a showcase of what is possible to do using the library. Download the application from the releases section, and see the separate documentation file on the application.
If you are looking for some usage examples, check the GitRepositoryModel.fs file, or see the API documentation.
Versioning Policy
This project's versioning follows the Semantic Versioning 2.0.0 specification. Only changes in the NuGet package are considered. The example application can change at any time.
Documentation
License
The project is distributed under the terms of the MIT license.
The license indication in the project's sources is compliant with the REUSE specification v3.3.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- ChangelogAutomation.MSBuild (>= 3.0.3)
- FSharp.Control.AsyncSeq (>= 3.2.1)
- FSharp.Core (>= 9.0.303)
- JetBrains.Lifetimes (>= 2025.3.1)
- SharpZipLib (>= 1.4.2)
- TruePath (>= 1.10.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
[Fixed]
- #162: "Invalid hash" when traversing a repository (https://github.com/ForNeVeR/Fenrir/issues/162). This issue happened with repositories where multiple pack files are present.
[Changed]
- Updated the dependency versions.